假设这是我的收藏夹中的表格:
{
"_id" : ObjectId("557cf6bbd8efe38c627bffdf"),
"name" : "John Doe",
"rating" : 9,
"newF" : [
"milk",
"Eggs",
"Beans",
"Cream"
]
}
用户输入某些输入后,它将被发送到我的节点服务器,然后我的节点服务器将该项目添加到列表中"newF"
,然后将其发送回我MongoDB
并保存。我正在尝试使用更新,它可以成功更改此表中的值,但是我不确定如何将新项目添加到该列表中。我是$push
在内完成此操作的MongoDB shell
,但不确定如何在节点上执行此操作。
这是我的代码片段:
db.collection('connlist').update({ _id: new ObjectId("e57cf6bb28efe38c6a7bf6df")}, { name: "JohnDoe", rating: 9, newF: ["Milk, Eggs", "Beans"] }, function(err,doc){
console.log(doc);
});
好吧,添加新项的语法与在shell中相同:
// make sure you actually imported "ObjectID"
var ObjectId = require('mongodb').ObjectID;
db.collection('conlist').update(
{ "_id": new ObjectId("e57cf6bb28efe38c6a7bf6df") },
{ "$push": { "newF": { "$each": [ "cream", "butter" ] } } },
function(err,numAffected) {
// do something in the callback
}
)
或者,.findOneAndUpdate()
如果您想返回修改后的文档而不是仅仅进行更改,则可以使用。
当然使用$push
并且可能$each
允许在添加到数组时添加多个数组元素。如果要“唯一”项目$addToSet
,请在操作允许的地方使用。
通常来说,对于$set
文档的更新部分中应使用的其他项目或其他运算符。没有这些运算符,您只是用放置在语句“更新”部分中的任何结构“替换”文档内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句