在 mongodb 中使用 Javascript 数组使用 $in 更新查询
Using Javascript arrray in mongodb update query with $in
我正在尝试更新我的集合中的所有文档,这些文档的字段包含我的 javascript 数组中的任何一个值。我不断收到“$in 需要一个数组”错误。我不明白如何将 javascript 对象转换为 mongo 将接受的数组。
这是我的节点后端代码:
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("test");
var myquery = { transferID: {$in: {idStore}}};
var newvalues = {$set: {redAlert: "1"} };
dbo.collection("myCollection").updateMany(myquery, newvalues, function(err, res) {
if (err) throw err;
console.log(res.result.nModified + " document(s) updated");
db.close();
});
});
这是我的数组:
var idStore = [123, 456, 789]
你的数组没有问题,但问题出在你的查询上,你用大括号({})
传递idStore
,这使它成为object
,这就是为什么是姐姐抛出那个错误。
将您的查询更改为此并尝试:
var myquery = { transferID: {$in: idStore}};//without {}
我正在尝试更新我的集合中的所有文档,这些文档的字段包含我的 javascript 数组中的任何一个值。我不断收到“$in 需要一个数组”错误。我不明白如何将 javascript 对象转换为 mongo 将接受的数组。
这是我的节点后端代码:
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("test");
var myquery = { transferID: {$in: {idStore}}};
var newvalues = {$set: {redAlert: "1"} };
dbo.collection("myCollection").updateMany(myquery, newvalues, function(err, res) {
if (err) throw err;
console.log(res.result.nModified + " document(s) updated");
db.close();
});
});
这是我的数组:
var idStore = [123, 456, 789]
你的数组没有问题,但问题出在你的查询上,你用大括号({})
传递idStore
,这使它成为object
,这就是为什么是姐姐抛出那个错误。
将您的查询更改为此并尝试:
var myquery = { transferID: {$in: idStore}};//without {}