使用$ set和location $运算符更新数组中的特定MongoDB文档?

要使用$set和positional运算符更新数组中的特定文档,请使用MongoDB updateOne()。该updateOne()基于查询过滤器集合中更新单个文件。

让我们创建一个包含文档的集合-

> db.demo462.insertOne(

... {

...    "id":1,

...    "DueDateDetails": [

...       {

...          "Name": "David",

...          "Age":21,

...          "CountryName":["US","UK"]

...       },

...       {

...

...          "Name": "Chris",

...          "Age":23,

...          "CountryName":["UK"]

...       }

...    ]

... }

... );

{

   "acknowledged" : true,

   "insertedId" : ObjectId("5e7f6c59cb66ccba22cc9dce")

}

find()方法的帮助下显示集合中的所有文档-

> db.demo462.find();

这将产生以下输出-

{ "_id" : ObjectId("5e7f6c59cb66ccba22cc9dce"), "id" : 1, "DueDateDetails" : [ { "Name" :

"David", "Age" : 21, "CountryName" : [ "US", "UK" ] }, { "Name" : "Chris", "Age" : 23,

"CountryName" : [ "UK" ] } ] }

以下是使用$set和positional $运算符使用updateOne()-更新数组中文档的查询-

> db.demo462.updateOne(

...    {id: 1, "DueDateDetails.Name": "Chris"},

...    { $set: { "DueDateDetails.$.CountryName": "AUS"} }

... )

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

find()方法的帮助下显示集合中的所有文档-

> db.demo462.find().pretty();

这将产生以下输出-

{

   "_id" : ObjectId("5e7f6c59cb66ccba22cc9dce"),

   "id" : 1,

   "DueDateDetails" : [

      {

         "Name" : "David",

         "Age" : 21,

         "CountryName" : [

            "US",

            "UK"

         ]

      },

      {

         "Name" : "Chris",

         "Age" : 23,

         "CountryName" : "AUS"

      }

   ]

}

以上是 使用$ set和location $运算符更新数组中的特定MongoDB文档? 的全部内容, 来源链接: utcz.com/z/316294.html

回到顶部