MongoDB 入门
来源:互联网 发布:arm linux gcc4.3下载 编辑:程序博客网 时间:2024/05/17 05:07
MongoDB Shell是MongoDB自带的交互式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的实例。
2.2.2 shutdownServer()指令
通过admin库中发送db.shutdownServer()指令停止MongoDB实例。
4.3 连接数据库
新建一个session,键入mongo出现:
默认shell连接的是本机localhost上的test库,”connecting to”显示正在使用的数据库的名称,使用”use mydb”来切换数据库。
Mongo shell采用js shell。
4.4 插入记录
不需要预先创建一个集合,在第一次插入数据时候会自动创建。
在文档中其实可以存储任何结构的数据。
每次插入数据时候集合中都会有一个ID,名字叫_id。
4.5 _id key
MongoDB支持的数据类型中,_id是其自有产物。
存储在MongoDB集合中的每个文档都有一个默认的主键_id,这个主键名称是固定的,它可以是MongoDB支持的任何数据类型,默认是ObjectId。
在mongoDB中,每个集合都必须有一个叫做_id的字段,字段类型默认是ObjectId。
虽然_id的类型可以自由指定,但是在同一个集合中必须唯一。
4.6.1 普通查询
从一个查询中返回一个游标对象,可以简单的通过find()来查询,它返回一个任意结合的集合。
上面的例子显示了游标风格的迭代输出。
当我们使用的是JavaScript shell,可以用到JS的特性forEach就可以输出游标了。forEach()必须定一个函数供每个游标元素调用。
在mongodb shell里,可以把游标当作数组来使用。使用游标时应该注意占用内存的问题,所以应该使用迭代的方式来输出。
4.6.2 条件查询
查询条件是{a:A,b:B,...}类似 “where a==A and b==B”上面查询初所有的元素,也可以返回特定的元素,类似于返回表里某字段的值。
4.6.3 findOne()语法
findOne函数返回游标里第一条数据,或者返回Null。
4.6.4 通过limit限制结果集数量
通过limit方法可以限制结果集的长度,这是解决性能问题的方法,减少网络传输。
4.7 修改记录
将name是mongo的记录的name修改为mongo_new。
4.8 删除记录
将用户Name是mongo_new的记录从集合things中删除。
- [MongoDB]MongoDB Java 入门
- mongodb入门
- MongoDB入门
- MongoDB入门
- mongoDB 入门
- mongoDB 入门
- mongoDB 入门
- MongoDB入门
- MongoDB入门
- Mongodb 入门
- mongodb入门
- mongodb 入门
- MongoDB入门
- MongoDB 入门
- Mongodb入门
- MongoDB入门
- MongoDB 入门
- MongoDB 入门
- [STL学习] C++编程实现 (vector)
- webview 调用第三方浏览器的原因及解决办法
- Android之旅之简单翻译
- JAVA培训课程内容
- 为何使用EL了表达式能够访问valueStack中对象的属性-源码分析
- MongoDB 入门
- 练习6.16
- 微电影笔记
- 计算机科学中最重要的32个算法
- JavaIO流基础笔记(二)
- 题目1078:二叉树遍历(2006年清华大学计算机研究生机试真题)
- 如果把马云和我们放在一起会发生什么事儿
- leetcode Convert Sorted List to Binary Search Tree
- 编程备忘录之qsort和sort