热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MongoDB数据库安装与使用

导引安装之前写的一片mongodb使用小记过于简单,当时自己觉得没有必要详细写作,因为很多自己看文档就可以轻松搞定了,但是到自己要重新使用的时候,发现有些还是很容易忘记的。看文档固然可以理解,但是花费时间比较长,还有一点,文档都是面向大众话的,
导引
安装
之前写的一片mongodb使用小记过于简单,当时自己觉得没有必要详细写作,因为很多自己看文档就可以轻松搞定了, 但是到自己要重新使用的时候,发现有些还是很容易忘记的。看文档固然可以理解,但是花费时间比较长, 还有一点,文档都是面向大众话的,语言讲的覆盖比较广,但是却不细,现在重新记载一下使用过程, 以便以后快速参考。
去mongodb的官方网站下载和自己的机器相适应的.tar.gz压缩包。
使用一下命令解压缩:tar zxf mongodb-linux-xxx...
创建一个数据库存储的目录,mongodb默认会使用/data/db目录,因此,我们需要创建该目录, 同时要给目录加上一定的权限,可以使用以下命令:根据自己的情况,使用root权限操作。
mkdir -p /data/db
chown -R $USER:$USER /data/db
切换到自己刚才解压出来的mongodb目录,会发现有一个bin目录,进去之后,会发现里面全部是可执行文件, 在该目录下执行 ./mongod

mongodb数据库就可以以默认的方式启动了。

配置启动和停止
上面我们已经以默认的方式让mongodb启动了,但是在实际中,对于启动有多种配置方式。 使用下面命令可以查看都可以配置那些配置方式:   ./mongod --help
现在简单介绍一下一些常用的配置参数
--dbpath [数据目录地址]
用于指定数据存储目录,默认情况下,使用\data/db.在mongodb中, 每个mongod进程只能用一个单独的数据目录,注意这里指的是每个mongodb进程示例,并不是指数据库。 因此每个数据目录下面都有一个mongod.lock文件。当有多个mongod进程使用同一个数据目录的时候, 就会报错。
--port [端口号]
指定mongod启动的时候监听的端口号,默认情况下是27017。
--fork
让mongod以守护进程启动
--config [配置文件]
在这里可以制定,mongod启动的时候的配置文件,配置文件主要就是命令行参数的一些集合,写法为键=值, 像fork这些参数,使用true或者false。下面是一个配置文件示例
    # my mongod config
    port = 20000
    fork = true
    logpath = mongodb.log
--logpath [log文件]
指定输出的log文件
在mongod启动后都会有一个轻量的http端口开放,该端口号为mongod启动端口的值加上1000。 因此你可以在浏览器中输入localhost:28017(默认端口)来访问web页面。里面会有一些关于mongodb的运行信息。 但是有的时候为了安全原因,你可以关闭该端口,只要你在启动的时候加入--nohttpinter-face。另外,还可以 使用参数--bindip localhost,指定本机访问。还有一个在实际中要用的参数,--auth,加上这个参数之后启动 mongodb。在客户端连接mongodb服务器之后,当执行一些操作的时候,就需要认证。这就要和用户名权限相关联了。 同时也有一个root账户。

有两种普遍的方法可以停止mongodb数据库运行:
1,当mongodb是在终端运行的时候,可以直接按下Ctri+C,来终止mongodb进程。
2,当mongodb以守护进程的方式运行的时候,使用以下命令: kill -2 [mongodb进程号]其中mongodb进程号,可以使用ps -ef | grep mongod来查看。
使用 启动mongodb服务进程之后,mongodb自带有一个客户端程序,也是在bin目录下。运行./mongo就可以启动客户端 界面。这是一个典型的shell界面,可以在这里面进行对数据库的操作。不过在这个shell有一个比较特别的地方, 就是可以使用javascrip。它会自动解析javascrip语言。下面记录一下使用python的接口操作mongodb的过程。
首先,你会发现你至少可以搜到这样的三个python扩展库:pymongo,mongoengine,django-mongodb。 这些都是python操作mongodb的接口。它们之间的关系大自是这样字的。pymongo相当于是一个比较low level 的driver。仅仅是可以用python语言与数据库交互。因此相对来说是比较底层的驱动而已。而其它两种则是 object relation mapping,也就是ORM。经过对象抽象化的,相对而言要高层一些。比如我们在用django 这些web框架编写应用的时候,就会选择使用这些ORM。下面记录pymongo这个扩展包操作数据库的方法。
安装python很简单,就像安装其他python的扩展库一般,使用easy_install或者pip都一样。安装完之后,
进入python命令行。 建立连接:建立连接的时候,只是和mongodb进程连接
from pymongo import Connection
connection = Connection()
#another way to connection
connection = Connection('localhost',27017)
选择连接数据库:如果该数据库不存在,则会自动创建
db = connection.blog
#如果有安全验证的话,要执行以下语句进行认证
db.authenticate(user,password)
选择一个集合:在mongodb中是以库,集合,文档这样的结构组织的
blogs = db.blogs
尝试在mongodb中插入一个文档:
post={"author":"jom","text":"this is my first blog","tag":["mongodb","python"]}
blogs.insert(post)
查询文档:
#find one document
blogs.find_one()
#寻找全部符合一定要求的文档
blogs.find({"author":"jom"})
#list all documents
blogs.find()


推荐阅读
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文将介绍如何利用Python爬虫技术抓取国内主流在线学习平台的数据,并以51CTO学院为例,进行详细的技术解析和实践操作。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
author-avatar
RebeccaLd
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有