一、数据插入删除
(1)Insert函数:db.集合名.insert(obj,opts)obj要插入的文档,ops为可选参数可用来设置写安全级别。
1.insert函数只能作用于一个集合。
2.如果集合不存在,数据库服务会自动创建目标集合。
3.插入文档时如果没有指定_id字段,数据库服务会自动创建ObjectId对象作为_id的值。
(2)Bulk函数:用来批量处理插入和删除分为顺序Bulk和并行Bulk两种。
1.初始化Bulk
db.集合名.initializeUnorderedBulkOp() 并行Bulk
db.集合名.initializeOrderedBulkOp() 顺序Bulk
2.向Bulk中添加数据更新操作
Bulk.insert()、Bulk.find.update()、Bulk.find.remove()。
3.执行更新操作
调用Bulk.execute()
(3)Remove函数:db.集合名.remove(query,justOne)query为查询条件,指明要删除的文档,空的的话会删除所有文档。justone可选参数,使用该参数,只会删除满足条件的一个文档。
(4)MMAPv1内存分配:如果一个更新操作超过了文档在磁盘上的预分配的空间,MongoDB将会重新在磁盘上为其分配一块更大的连续空间。然后将原来的数据复制到新的空间中。
二、MongoDB文档修改
(1)Update函数
db.集合名.update(query,obj,upset,multi)。
query查询条件,相当于SQL中的where。
obj更改的内容相当于SQL中的set。
upsert当查询条件query指明的文档不存在时,是否需要插入一条新文档{upsert:true}。
multi当查询条件query返回多个文档时,是否需要一次更新所有满足条件的文档{multi:true}。
(2)更新操作符
三、MongoDB写安全机制
(1)写过程:当使用insert/update/remove/save等操作更新集合中的数据时,只是更改了数据在内存中的映像,数据并没有同步的保存在磁盘上,在更新内存中的数据之前,更新操作会被记录到journal日志文件中。
(2)MongoDB提供了四种级别的写入安全机制分别是:
Unacknowledged 非确认式写入(不返回结果,无法知道是否写入成功)
Acknowledged 确认式写入(返回结果)(只能确认写入成功到内存中)
Journaled 日志写入 (可以判断是否写入到磁盘中)
Replica Acknowledged 复制集确认式写入(写操作不仅要主节点写入确认,还得得到从节点的写入确认)
这四种安全机制按顺序增高,效率降低。
原文地址:http://12161108.blog.51cto.com/12151108/1941062