【问题标题】:Is there a way to update the first document in a MongoDB collection given a query and a sort option using the "update" function?在给定查询和排序选项的情况下,有没有办法使用“更新”函数更新 MongoDB 集合中的第一个文档?
【发布时间】:2015-04-23 17:22:43
【问题描述】:

我想使用 MongoDB 中的 update 函数来更新集合中的第一个文档,给定 querysort(或 orderBy)配置。

我知道findAndModify的解决方案:

db.col.findAndModify(query, sort, updates)

你能用update函数做同样的事情吗?

【问题讨论】:

  • 你为什么不使用findAndModify
  • @Michael9 因为我想知道update 是否可以达到同样的效果:) 当然我会使用它,因为我别无选择。

标签: mongodb mongodb-query


【解决方案1】:

根据UpdateOne的文档指定一个空文档{}作为过滤器来更新集合中返回的第一个文档。

【讨论】:

    【解决方案2】:

    您不能将sortupdate 一起使用,但如果您未在更新中指定multi 选项,则只有满足查询 条件的第一个文档将会被更新。 除非您使用Capped collections,否则无法保证磁盘上文档的顺序。

    【讨论】:

    • “第一”是什么意思?
    • 但是有什么隐含的顺序吗? (放在光盘上,主索引_id)。对我来说,根据_id 更新第一个很重要。这就是为什么我问我是否可以依靠更新来解决这个问题。我的实践经验告诉我,默认的_id 索引也不被视为正常的update
    猜你喜欢
    • 2021-03-20
    • 2021-11-12
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多