新的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?
就解决了。这是一个愚蠢的错误……我需要从队列中删除括号。
答案 0 :(得分:0)
您要寻找的是: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
}
}
})