需要帮助在Node js中编辑MongoDB文档

用户10730843

新的mongoDb和某种程度上的Node js。我想将代码字符串添加到Mongodb Atlas上的文档中,在那里我有一个数组等待存储这些字符串。我似乎找不到正确的代码,也找不到与我的情况类似的东西。

好的,所以我似乎在此问题上取得了一些进展。现在它将在mongo中更新数组,但不是一个好方法。这是运行服务器一次对mongo文档执行的操作:

之前:

    _id:ObjectID("5c02199b1c9d440000266941")
Names:Array

后:

    _id:ObjectID("5c02199b1c9d440000266941")
Names:Array
--> 0:Array
    ---> 0:Array
         ---> Actual data

我不确定为什么会这样。这是产生这些结果的代码:

MongoClient.connect(url, {useNewUrlParser : true}, function(error, client) {
// perform actions on the collection object
var db = client.db("DatabaseTest");
    db.collection('Room').updateOne(
        {'Names':Array},
        {$push: {"Names": [queue]}},
        {}
    )

client.close();
});

为什么要添加2个数组而不是仅添加到Names:Array?

刚刚解决了。这是一个愚蠢的错误……我需要从队列中删除括号。

尼古拉斯·佩雷蒂(Nicholas Peretti)

您正在寻找的是这个:https : //docs.mongodb.com/manual/reference/operator/update/push/#append-multiple-values-to-an-array

如果您的queue变量是一个数组,那么您应该像这样重写查询:

var queue = [1, 2, 3, 4]

db.collection('Room').updateOne({
  { 'Names': Array },
  {
    $push: {
      Names: {
        $each: queue
      }
    } 
  }
})

否则,如果您的queue变量包含单个值:

var queue = 5


db.collection('Room').updateOne({
  { 'Names': Array },
  {
    $push: {
      Names: queue
    } 
  }
})    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章