【问题标题】:Using Javascript arrray in mongodb update query with $in在带有 $in 的 mongodb 更新查询中使用 Javascript 数组
【发布时间】:2019-07-03 07:49:12
【问题描述】:

我正在尝试更新我的集合中的所有文档,这些文档的字段包含我的 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``s,而不是idStore
  • 去掉花括号就可以了var myquery = { transferID: {$in: idStore}};
  • 谢谢 Ashh 似乎已经做到了

标签: javascript arrays mongodb object updates


【解决方案1】:

您的数组没有问题,但问题在于您的查询,您传递 idStore 和大括号({}),这使它成为 object,这就是它抛出该错误的原因。

将您的查询更改为此并尝试:

var myquery = { transferID: {$in: idStore}};//without {}

【讨论】:

    猜你喜欢
    • 2017-04-29
    • 2014-03-19
    • 2020-11-05
    • 2016-04-23
    • 1970-01-01
    • 2021-08-24
    • 2012-05-05
    • 1970-01-01
    • 2014-11-04
    相关资源
    最近更新 更多