Express 更新mongoose中的多个文档(节点JS)
我想用对象数组进行的查询更新多个文档。然而,我发现只有一份文件被更改Express 更新mongoose中的多个文档(节点JS),express,mongoose,mongodb-query,nodes,Express,Mongoose,Mongodb Query,Nodes,我想用对象数组进行的查询更新多个文档。然而,我发现只有一份文件被更改 var split = num.toString().split(','); var list = new Array; for ( var i in split ) { var pk = { "_id" : split[i], "id" : user.id } list.push(pk); } var vm = {name:"robert",category:"med
var split = num.toString().split(',');
var list = new Array;
for ( var i in split ) {
var pk = {
"_id" : split[i],
"id" : user.id
}
list.push(pk);
}
var vm = {name:"robert",category:"media"};
database.bookModel.findOneAndUpdate(list, vm, { multi: true }, function (err, result) {
....
以下方法我无法更新多个文档。
我正在使用findOneAndUpdate查询,发现只有一条记录将被更改
我做错什么了吗?有没有办法在对象数组中使用条件?使用批量查找和更新
var bulk = db.Model.initializeUnorderedBulkOp();
var vm = {
name: "robert",
category: "media"
};
for (var i in split) {
var pk = {
"_id": split[i],
"id": user.id
}
bulk.find(pk).update({
$set: vm
});
}
bulk.execute();
您正在使用“findOneAndUpdate”,它只会更新一个文档,请尝试“更新”,您应该会没事的。您需要像这样更改查询:
database.bookModel.update(list, vm, {
multi: true
}).then(() => {
res.status(200).json({
message: 'Data updated successfully!'
})
}).catch((err) => {
res.status(500).json({
error: err
});
});
谢谢。多亏了你,我才得以解决我的问题:)谢谢你的建议。下次我将代表“findOneAndUpdate”使用“update”: