0
我是新來的MongoDB和貓鼬。帶有ObjectId數組的文檔 - 推送值(如果存在),刪除否則刪除
所以我的模型擁有許多領域,在他們之中是的ObjectID
數組var modelSchema = new Schema({
//...
inner_array: [Schema.Types.ObjectId],
//...
});
我想要實現我的查詢是:
查找模型通過它的ID,
如果內部數組包含特定值,則將其從數組中移除。
如果該值是不是inner_array內,將其推
var target_id = // document id
var inner_object_id = // value to push
models.MyModel.findOne(
{_id: target_id},
function (err, model) {
// IN THIS SCOPE 'INNER_OBJECT_ID' IS UNDEFINED
// if model.inner_array contains 'inner_object_id', remove it
// otherwise, push 'inner_object_id' into model.inner_array
model.save();
res.json(model); // return modified document to client
}
);
我相信這可以在一個單一的findOneAndUpdate寫,但我不能找出語法..
非常感謝!
有與做這種方式,在回調函數一個問題 - 「inner_object_id」變量是不確定的。它被定義之前 – Moka
好吧,我似乎已經通過使用.bind() – Moka
變量很高興我可以幫助。 –