【问题标题】:Mongoid delete many with limitMongoid 有限制地删除许多
【发布时间】:2018-08-19 19:49:23
【问题描述】:

使用mongoid,如何删除error_message字段为:Error: not found的前10000个文档。

本机 mongo 查询将被愉快地接受

【问题讨论】:

标签: ruby mongodb mongoid


【解决方案1】:

MongoDB 支持删除限制。

delete 命令从集合中删除文档。一个 删除命令可以包含多个删除规范

{
   delete: <collection>,
   deletes: [
      { q : <query>, limit : <integer>, collation: <document> },
      { q : <query>, limit : <integer>, collation: <document> },
      { q : <query>, limit : <integer>, collation: <document> },
      ...
   ],
   ordered: <boolean>,
   writeConcern: { <write concern> }
}

https://docs.mongodb.com/manual/reference/command/delete/#dbcmd.delete

其中“q”是您对特定输入数据的查询(必须与您要删除的文档匹配),“limit”是要删除的最大文档数。如您所见,可能有多个删除条件,但不在您的问题范围内。

【讨论】:

  • 不知道 Mongoid 是否支持。如果不是,这可能是一个很好的功能请求。
  • @JagdeepSingh 根据 MongoDB 文档,“runCommand”支持“删除”。然后你应该用 Ruby (rubydoc.info/github/mongoid/moped/Moped%2FSession%3Acommand) 调用 'runCommand' 来使用它。
  • 来自文档:限制 - 要删除的匹配文档的数量。指定 0 以删除所有匹配的文档,或指定 1 以删除单个文档。您不能设置要删除的文档数。
猜你喜欢
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 2019-08-05
  • 2011-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多