使用$along和update命令一起更新标签记录。让我们创建一个包含文档的集合-
> db.demo713.insertOne(
... {
... tags:
... [
... {
... id:101,
... Name:"Tag-1"
... },
... {
... id:102,
... Name:"Tag-3"
... },
... {
... id:103,
... Name:"Tag-3"
... }
... ]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5ea8625a5d33e20ed1097b87")
}
在find()方法的帮助下显示集合中的所有文档-
> db.demo713.find();
这将产生以下输出-
{ "_id" : ObjectId("5ea8625a5d33e20ed1097b87"), "tags" : [ { "id" : 101, "Name" : "Tag-1" }, { "id" : 102, "Name" : "Tag-3" }, { "id" : 103, "Name" : "Tag-3" } ] }
以下是标签更新的查询-
> db.demo713.update({"tags.id":102},{$set:{"tags.$.Name":"Tag-2"}},false,true);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
在find()方法的帮助下显示集合中的所有文档-
> db.demo713.find().pretty();
这将产生以下输出-
{
"_id" : ObjectId("5ea8625a5d33e20ed1097b87"),
"tags" : [
{
"id" : 101,
"Name" : "Tag-1"
},
{
"id" : 102,
"Name" : "Tag-2"
},
{
"id" : 103,
"Name" : "Tag-3"
}
]
}