【问题标题】:how to use findAndModify() function in mongo如何在 mongo 中使用 findAndModify() 函数
【发布时间】:2014-01-10 05:04:07
【问题描述】:

这个数据在集合中

var documents = [{
      _id : 1
    , title: "Buy milk"
    , priority: 5
    , started: false
    , done: false
    , startTime: null
    , endTime: null
    }, {
      _id : 2
    , title: "Become a Billionaire"
    , priority: 1
    , started: false
    , done: false
    , startTime: null
    , endTime: null
    }, {
      _id : 3
    , title: "Play DOOM"
    , priority: 1000
    , started: false
    , done: false
    , startTime: null
    , endTime: null
    }
  ]

我正在使用带有以下参数的 findAndModify() 函数:

db.test.findAndModify({started:false},{priority:-1},{$set:{started:true}},{new:true})

我又遇到这个错误了


findAndModifyFailed 失败:{“ok”:0,“errmsg”:“需要删除或 更新”} 在 src/mongo/shell/collection.js:399


谁能告诉我我在哪里犯了错误, 谢谢

【问题讨论】:

  • 这说明了问题,你需要指定一个 OP 类型

标签: mongodb


【解决方案1】:

好吧,您可以使用 findAndModify 原子地使用 updateremove 文档

db.test.findAndModify({
    query:{started:false, priority:1},
    update:{$set : {started:true}},
    new:true
})

【讨论】:

    【解决方案2】:

    findAndModify 用于单个文档。当multi 设置为true 时,update 可用于多个文档。

    【讨论】:

      猜你喜欢
      • 2013-04-21
      • 1970-01-01
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      相关资源
      最近更新 更多