我原本以为这很简单,但我认为这可能会产生意想不到的结果。我基本上将一些文档加载到变量中..然后我想将整个文档保存回MongoDB。
我是否必须使用保存单独保存每个 https://docs.mongodb.com/manual/reference/method/db.collection.save/
或者我可以使用updatemany https://docs.mongodb.com/manual/reference/method/db.collection.updateMany/
将它们作为数组发送在文档中似乎并不清楚如何做到这一点......如果可以的话。
感谢您的时间。
答案 0 :(得分:0)
如果你使用Native MongoDB驱动程序用于NodeJs,你可以使用insertMany如果你想创建新文档,我认为如果你有一个对象数组(注意井名字段),它将会起作用:
var your_variable = [{a: 1, b: 2, c: 3}, {a: 2, b: 3, c: 1, d: 4}];
db.YourCollection.insertMany(your_variable, function(err, result) {
// Your treatement
});
如果你想更新具有多个价值的多个,那是不可能的(或经过多次研究后我没有找到一个好的解决方案),你必须提出多个请求。
答案 1 :(得分:0)
要使用相同的值更新多个文档,您可以这样查询:
db.YourCollection({/* filter empty to update all document */}, {
$set: {
field1: new_value1,
field2: new_value2
// etc...
}
}, function(err, result) {
// your treatment
});
如果要更新多个文档但不是全部,请使用以下方法:
db.YourCollection({fieldToFilter: value}, {
$set: {
field1: new_value1,
field2: new_value2,
// etc...
}
}, function(err) {
// Your treatment
});
$set
阶段用于更改字段的值,但您可以使用以下任何运算符:https://docs.mongodb.com/manual/reference/operator/update/
你没有被迫使用回调功能,你也可以使用Promise