У меня есть код, который должен вставить вложенный документ update в массив внутри основного документа: проблема, возникающая при многократном вызове этой функции в nodejs,иметь последнее обновление только с MyObject.bar .
- Есть ли управление параллелизмом , которое мне нужно сделать на уровне updateOne?
- Нужно ли использовать findOneAndUpdate mongoose вместо updateOne ?
- Есть ли какая-то специальная опция для использования с 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
})
}