http://www.mongodb.org/display/DOCS/findAndModify+CommandfindAndModify CommandfindAndModify的调用方式和普通的更新略有不同,还有点慢,这是因为它要等待数据库的响应。这对于操作查询以及执行其他需要取值和赋值风格的原子性操作来说是十分方便的。
findAndModify命令中每个键对应的值如下所示。
findAndModify 字符窜,集合名。
query 查询文档,用来检索文档的条件。
sort 排序结果的条件。
update 修改器文档,对所找到的文档执行的更新。
remove 布尔类型,表示是否删除文档。
new 布尔类型,表示返回的是更新前的文档还是更新后的文档。默认是更新前的文档。
"update"和"remove"必须有一个,也只能有一个。要是匹配不到文档,这个命令会返回一个错误。
这个命令有些限制。它一次只能处理一个文档,也不能执行upsert操作,只能更新已有文档。
相比普通更新来说,findAndModify速度要慢一些。大概耗时相当于一次查找,一次更新和一次getLastError顺序执行所需的时间。
db.runCommand("findAndModify":集合名,"query":{查询条件},"upadte":{修改器})