mongo 中是否有返回更新语句中更新的文档数的函数?
我曾尝试使用 count()
但显然更新语句只返回 true 或 false 所以我想我得到的是字符串的计数。
谢谢
最佳答案
使用 getLastError
命令获取有关操作结果的信息。
我不知道 ruby 驱动程序,但大多数驱动程序会在“安全模式”下自动执行此操作。在安全模式下,每次写入都会检查 getLastError
的结果以确保写入成功。更新操作应该返回一个看起来像 JSON 对象的对象,它包括更新文档的数量 (n
)。您可以微调安全模式设置,但请注意,默认模式是“即发即弃”,因此对于许多用例来说,安全模式是个好主意。
在外壳中,
> db.customers.update({}, {$set : {"Test" : "13232"}}, true, true);
> db.runCommand( "getlasterror" )
{
"updatedExisting" : true,
"n" : 3,
"connectionId" : 18,
"err" : null,
"ok" : 1
}
在这里,我更新了 n = 3
个文档。请注意,默认情况下,mongodb 中的更新操作仅适用于第一个匹配的文档。在shell中,第四个参数用来表示我们要更新多个文档。
关于mongodb - 获取更新文档的数量 mongo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8142554/