我是mongoDB的新手,所以我需要一些帮助。
我有一个备份集合。它包含包含以下数据的文档:
{
"_id" : ObjectId("59f18942e7798954dc373b67"),
"category" : "building",
},
{
"_id" : ObjectId("59f18942e7798954dc373b68"),
"category" : "building",
},
{
"_id" : ObjectId("59f18942e7798954dc373b69"),
"category" : "tree",
"type" : 18,
},
{
"_id" : ObjectId("59f18942e7798954dc373b70"),
"category" : "book",
"type" : 18,
}
然后,例如,一些对象被改变了,变成了这样:
{
"_id" : ObjectId("59f18942e7798954dc373b67"),
"category" : "building",
"size" : 100
},
{
"_id" : ObjectId("59f18942e7798954dc373b68"),
"category" : "building",
"size" : 400
},
{
"_id" : ObjectId("59f18942e7798954dc373b70"),
"category" : "book",
"type" : 18,
"title" : "New"
}
所以我需要在我的数据库中更新它们。根据我的理解,只需更换。我已经阅读了关于使用'upsert'和'multi'的文档。但是我无法实现它 怎么做?
答案 0 :(得分:0)
在mongo中更新文档的基本语法是
db.collection.update(query,update,options);
对于你的问题,
1。
db.collection.update({_id: ObjectId("59f18942e7798954dc373b67")},{$set:{size:100}});
2。
db.collection.update({_id: ObjectId("59f18942e7798954dc373b68")},{$set:{size:400}});
3。db.collection.update({_id: ObjectId("59f18942e7798954dc373b70")},{$set:{title:"New"}});
编辑:
您可以试试这个,如果您想在一个命令中执行写操作:
> db.characters.bulkWrite(
> [
> { updateOne :
> {
> "filter" : { _id : ObjectId("59f18942e7798954dc373b67") },
> "update" : { $set : { size : 100 } }
> }
> },
> { updateOne :
> {
> "filter" : { _id : ObjectId("59f18942e7798954dc373b68") },
> "update" : { $set : { size : 400 } }
> }
> },
> { updateOne :
> {
> "filter" : { _id : ObjectId("59f18942e7798954dc373b68") },
> "update" : { $set: { title: "New"} }
> }
> },
> ]
>);