mongodb - 获取更新文档的数量 mongo

标签 mongodb mongoid mongodb-ruby database

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/

相关文章:

ruby - 使用 ObjectId 时无法使用 Ruby 和 MongoDB 找到文档

php - mongodb:查找列的最高数值

php - Laravel 5.2 应用程序从 mysql 迁移到 mongodb,但查询不起作用

mongodb组每2周

ruby - 使用elasticsearch过滤带有空格的标签

ruby - MongoDB 驱动程序 ruby​​,删除文档中的字段

ruby-on-rails-3.1 - Mongoid order_by bool 值

java - 如何使用 Spring Boot+MongoDB 自动生成日期

java - Spring Data Rest PATCH 禁止更新特定字段

ruby-on-rails - 如何检查 mongoid 中的文档中是否存在嵌入的文档?