MongoDB教程之数据操作实例教程之数据操作实例
主要介绍了MongoDB教程之数据操作实例,本文讲解了批量插入、数据库清除、数据更新、修改器、数组修改
器、upsert等内容,需要的朋友可以参考下
1. 批量插入:批量插入:
以数组的方式一次插入多个文档可以在单次TCP请求中完成,避免了多次请求中的额外开销。就数据传输量而言,批量插
入的数据中仅包含一份消息头,而多次单条插入则会在每次插入数据时封装消息头数据。对于数据导入而言,我们可以使用
mongoimport完成。
2. 数据库清除:数据库清除:
复制代码 代码如下:
> db.users.remove()
以上命令将会清除users集合中的所有数据,但是不会删除集合本身以及关联的索引。数据删除操作是不可恢复的,一旦删
除就物理的删除了。对于全集合清除这种case,一个更为有效的方式是直接删除集合对象本身以及他关联的所有索引,之后
再依次重建,如:
复制代码 代码如下:
> db.one_collection.drop()
3. 数据更新:数据更新:
如果在执行数据更新时,有多条文档匹配更新条件,为了避免更新后的_id出现重复性冲突,MongoDB将仅更新第一条查询
结果,如:
复制代码 代码如下:
> post1 = { "name": "stephen", "age" : "35"}
{ "name" : "stephen", "age" : "35" }
> post2 = { "name": "stephen", "age" : 36}
{ "name" : "stephen", "age" : 36 }
> db.blog.insert(post1)
> db.blog.insert(post2)
> post3 = { "name" : "stephen", "age": 37}
{ "name" : "stephen", "age" : 37 }
> db.blog.update({"name":"stephen"},post3)
> db.blog.find()
{ "_id" : ObjectId("4fcd7e2e20668578cc1097d8"), "name" : "stephen", "age" : 36 }
{ "_id" : ObjectId("4fcd7e2820668578cc1097d7"), "name" : "stephen", "age" : 37 }
4. 修改器:修改器:
使用修改器进行数据更新是原子的,也是高效的,不同于全部文档更新的是被更新文档的_id不会变化,而文档完全更新则
会修改文档的_id,以及相关的索引。
复制代码 代码如下:
> db.blog.find()
{ "_id" : ObjectId("4fcd7e2820668578cc1097d7"), "name" : "stephen", "age" : 41 }
{ "_id" : ObjectId("4fcd81bb20668578cc1097d9"), "name" : "stephen", "age" : 38 }
--$inc修改符将匹配条件的文档的age键原子加一,缺省情况下只是更新第一条符合条件的文档。
> db.blog.update({"name":"stephen"},{"$inc":{"age":1}})
> db.blog.find()
{ "_id" : ObjectId("4fcd7e2820668578cc1097d7"), "name" : "stephen", "age" : 42 }
{ "_id" : ObjectId("4fcd81bb20668578cc1097d9"), "name" : "stephen", "age" : 38 }
--可以通过update函数的最后一个参数来指定更新所有符合条件的文档,如: