MongoDB 入门

来源:互联网 发布:arm linux gcc4.3下载 编辑:程序博客网 时间:2024/05/17 05:07

  MongoDB ShellMongoDB自带的交互式javascript shell。用来对MongoDB进行操作和管理的交互式环境。

2.1 启动数据库

2.1.1 命令行方式启动

MongoDB默认的存储数据目录为/data/db,默认端口27017,默认HTTP端口28017。也可以修改成不同目录:mongod --dbpath=/data/db

2.1.2 配置文件方式启动

启动时加上-f参数,并指向配置文件即可。配置中dbpath=/data/db/

mongod -f /etc/mongodb.cnf

2.1.3 Daemon方式启动

MongoDB提供了一种后台Daemon方式启动的选择,只需要加上—fork参数即可。如果用到了--fork参数,就必须启用--logpath参数,这是强制的。

2.1.4 mongod参数说明

Mongod主要参数:

dbpath:数据文件存放路径。每个数据库会在其中创建一个子目录,防止同一个实例多次运行的mongod.lock也保存在次目录中。

logpath:错误日志文件

logappend:错误日志采用追加模式(默认覆写模式)

bind_ip:对外服务的绑定ip,一般设置为空,及绑定在本机所有可用ip上。如有需要可以单独绑定。

port:对外服务端口。Web管理端口在这个port的基础上+1000

fork:以后台Daemon形式运行服务。

journal:开启日志功能,通过保存操作日志来降低单机故障的恢复时间。

syncdelay:系统同步刷新磁盘的时间,单位为秒,默认时60秒。

directoryperdb:每个db存放在单独的目录中,建议设置该参数。

repairpath:执行repair时的临时目录。如果没有开启journal,异常down机后重启,必须执行repair操作。

在源代码中,mongod的参数分为一般参数,windows参数,replication参数,replica set参数以及隐含参数。上面列举的时一般参数。

mongod的参数中,没有设置内存大小的相关参数,因为MongoDB使用os mmap机制来缓存数据文件数据,自身目前不提供缓存机制。mmap在数据量不超过内存时效率很高,但是数据超过内存后,写入的性能不太稳定。

2.2 停止数据库

2.2.1 Control-C

如果处与链接状态,那么直接通过control+C方式停掉MongoDB的实例。

MongoDB快速入门 - sheperd - 牧羊人的博客

2.2.2 shutdownServer()指令

通过admin库中发送db.shutdownServer()指令停止MongoDB实例。


MongoDB快速入门 - sheperd - 牧羊人的博客

4.3 连接数据库

新建一个session,键入mongo出现:

MongoDB快速入门 - sheperd - 牧羊人的博客
 

默认shell连接的是本机localhost上的test库,”connecting to”显示正在使用的数据库的名称,使用”use mydb”来切换数据库。

Mongo shell采用js shell

4.4 插入记录


MongoDB快速入门 - sheperd - 牧羊人的博客
 

不需要预先创建一个集合,在第一次插入数据时候会自动创建。

在文档中其实可以存储任何结构的数据。

每次插入数据时候集合中都会有一个ID,名字叫_id

4.5 _id key

MongoDB支持的数据类型中,_id是其自有产物。

存储在MongoDB集合中的每个文档都有一个默认的主键_id,这个主键名称是固定的,它可以是MongoDB支持的任何数据类型,默认是ObjectId

mongoDB中,每个集合都必须有一个叫做_id的字段,字段类型默认是ObjectId

虽然_id的类型可以自由指定,但是在同一个集合中必须唯一。

4.6.1 普通查询

MongoDB快速入门 - sheperd - 牧羊人的博客
 

从一个查询中返回一个游标对象,可以简单的通过find()来查询,它返回一个任意结合的集合。

上面的例子显示了游标风格的迭代输出。

当我们使用的是JavaScript shell,可以用到JS的特性forEach就可以输出游标了。forEach()必须定一个函数供每个游标元素调用。

MongoDB快速入门 - sheperd - 牧羊人的博客

mongodb shell里,可以把游标当作数组来使用。使用游标时应该注意占用内存的问题,所以应该使用迭代的方式来输出。

MongoDB快速入门 - sheperd - 牧羊人的博客
 
MongoDB快速入门 - sheperd - 牧羊人的博客
  

4.6.2 条件查询

MongoDB快速入门 - sheperd - 牧羊人的博客
 查询条件是{a:A,b:B,...}类似 “where a==A and b==B”

上面查询初所有的元素,也可以返回特定的元素,类似于返回表里某字段的值。 

MongoDB快速入门 - sheperd - 牧羊人的博客

4.6.3 findOne()语法

findOne函数返回游标里第一条数据,或者返回Null

MongoDB快速入门 - sheperd - 牧羊人的博客

4.6.4 通过limit限制结果集数量

通过limit方法可以限制结果集的长度,这是解决性能问题的方法,减少网络传输。

MongoDB快速入门 - sheperd - 牧羊人的博客

4.7 修改记录

namemongo的记录的name修改为mongo_new

MongoDB快速入门 - sheperd - 牧羊人的博客

4.8 删除记录

将用户Namemongo_new的记录从集合things中删除。

MongoDB快速入门 - sheperd - 牧羊人的博客
0 0
原创粉丝点击