猫鼬多个$ push同一子文档

时间:2019-01-29 21:17:42

标签: mongoose mongoose-schema

我有一个代码,该代码应该将 update 子文档插入主文档中的 array 中: 我在nodejs中多次调用此函数时遇到的问题是,只有 MyObject.bar 具有最新的更新。

  1. 我需要对更新执行并发管理吗? 水平?
  2. 我是否必须使用 findOneAndUpdate 猫鼬功能 代替 updateOne 吗?
  3. 是否有一些与updateOne一起使用的特殊选项,以确保我正在更新文档的最新版本?

感谢您的帮助!

myschema:

var mongoose = require('mongoose')

var fooSchema = new mongoose.Schema({
  _id: mongoose.Schema.Types.ObjectId,
  timeline : [{
    //...
  }]
})

我的功能:

fooSchema.statics.updateItem = function(update){

  this.updateOne({
    '_id': mongoose.Types.ObjectId(foo)
  }, {
      $push: {
        'bar': update
      }
    }, { safe: true }).exec()
    .then(function (result) {
      if (cb) {
        cb(null, result)
      }
      return null
    }).catch(function (err) {
      if (cb) {
        cb(err)
      }
      return null
    })

}

0 个答案:

没有答案