在 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 {}