MongoDB进阶
MongoDB 原子操作命令
>mongodb不支持事务,所以,在你的项目中应用时,要注意这点。无论什么设计,都不要要求mongodb保证数据的完整性。 >但是mongodb提供了许多原子操作,比如文档的保存,修改,删除等,都是原子操作。 >所谓原子操作就是要么这个文档保存到Mongodb,要么没有保存到Mongodb,不会出现查询到的文档没有保存完整的情况。 - $set:用来指定一个键并更新键值,若键不存在则创建。 ```shell { $set : { field : value } } ``` - $unset:用来删除一个键。 ```shell { $unset : { field : 1} } ``` - $inc:用来对文档的某个数值类型的键值进行增减操作。 ```shell { $inc : { field : value } } ``` - $push:用来向文档中追加一些信息。 ```shell { $push : { field : value } } ``` 把 value 追加到 field 里面去,field 一定要是数组类型才行,如果 field 不存在,则会新增一个数组类型加进去。 - $pushAll:与 $push 类似,它可以一次追加多个值到一个数组类型的字段内。 ```shell { $pushAll : { field : value_array } } ``` - $pull:从数组 field 内删除一个等于 value 的值。 ```shell { $pull : { field : _value } } ``` - $pop:删除数组的第一个或最后一个元素。 ```shell { $pop : { field : 1 } } ``` - $rename:修改字段的名称。 ```shell { $rename : { old_field_name : new_field_name } } ``` - $bit:位操作,integer 类型。 ```shell {$bit : { field : {and : 5}}} ``` - 偏移操作符 ```shell > t.find() { "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC", "comments" : [ { "by" : "joe", "votes" : 3 }, { "by" : "jane", "votes" : 7 } ] } > t.update( {'comments.by':'joe'}, {$inc:{'comments.$.votes':1}}, false, true ) > t.find() { "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC", "comments" : [ { "by" : "joe", "votes" : 4 }, { "by" : "jane", "votes" : 7 } ] } ```
顶部
收展
底部
[TOC]
目录
MongoDB 查询分析
MongoDB 关系与引用
MongoDB 原子操作命令
MongoDB ObjectId
MongoDB Map Reduce
MongoDB GridFS
相关推荐
MongoDB教程
PHP操作MongoDB
MongoDB用户及安全
MongoDB优化