要更新嵌套文档,请使用$set。让我们创建一个包含文档的集合-
> db.demo315.insertOne({ _id :101, ... details: [ ... {Name: 'Chris', subjects: [{id:1001, SubjectName:"MySQL"}]} ... ] ... } ...) { "acknowledged" : true, "insertedId" : 101 }
在find()方法的帮助下显示集合中的所有文档-
> db.demo315.find().pretty();
这将产生以下输出-
{ "_id" : 101, "details" : [ { "Name" : "Chris", "subjects" : [ { "id" : 1001, "SubjectName" : "MySQL" } ] } ] }
以下是更新MongoDB中的嵌套文档的查询-
> db.demo315.update ({_id:101}, { '$set': {"details.0.subjects.1.id" :1004} }) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
在find()方法的帮助下显示集合中的所有文档-
> db.demo315.find().pretty();
这将产生以下输出-
{ "_id" : 101, "details" : [ { "Name" : "Chris", "subjects" : [ { "id" : 1001, "SubjectName" : "MySQL" }, { "id" : 1004 } ] } ] }