- var xx = db.collection.find({query})
- xx.newkey="new value"
- delete xx.key1
- db.collection.update({query},xx)
操作说明:通过查询获取某个文档,给该文档设置新的key/value对,删除旧的key=》key1,然后通过update操作更新该文档
2. 删除文档
db.collection.remove({query})
3. 插入文档
db.collection.insert({})
4. 修改器$set和$unset
$unset可以删除键,$set可以创建键(该键不存在),$set可以修改键的类型(通过update)
5. 数组修改器
push,pop,pull,ne,each,addtoset
ne+push可以实现类似addtoset的功能
addtoset+echo可以实现一次插入多个值
pop可以实现从数组头或者尾删除单个元素({$pop:{key:1}从数组尾删除,{$pop:{key:-1}从数组头删除)
pull可以实现按某种查询条件删除($pull:{query})
6. 数组定位修改器
数组元素可以通过下标来访问,下标从0开始
例如:
{key:{[{x1:1},{x1:2},{x1:3}]} 则 key.0.x1=1
另可以通过定位操作符“$”来查询匹配的文档
db.xx.update({key.x1:1},{$set:{key.$.x1:10}}),若查询条件有多个匹配,则仅改变第一个匹配结果
7. getLastError()和findAnyModified()
8 . 每个客户端连接都有独立的队列,打开两个shell,就会建立2个独立的连接,在其中一个插入的文档并不一定马上会在另个一shell中展现
9. not和mod ,exists
mod[num1,num2]:查询条件值除以num1后值为num2
10. size和slice
size返回数组长度,slice返回片段。slice的参数可以为正/负/数组
11. limit/skip/sort
12. elemMatch
查询条件匹配单个嵌套文档,而不是多个文档的组合匹配。