首先让我们创建一个包含文档的集合-
> db.updateArrayElementDemo.insertOne( { "UserDetails": [ { "UserName":"Chris", "UserAge":23 } ] } ); { "acknowledged" : true, "insertedId" : ObjectId("5ce9029378f00858fb12e90d") }
以下是在find()
方法的帮助下显示集合中所有文档的查询-
> db.updateArrayElementDemo.find().pretty();
这将产生以下输出-
{ "_id" : ObjectId("5ce9029378f00858fb12e90d"), "UserDetails" : [ { "UserName" : "Chris", "UserAge" : 23 } ] }
以下是使用$push更新匹配条件的数组元素的查询-
db.updateArrayElementDemo.update( {"UserDetails.UserAge": 23}, {"$push": {"UserDetails.$.UserCountryName": "US"}} ); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
让我们再次检查文档-
> db.updateArrayElementDemo.find().pretty();
这将产生以下输出-
{ "_id" : ObjectId("5ce9029378f00858fb12e90d"), "UserDetails" : [ { "UserName" : "Chris", "UserAge" : 23, "UserCountryName" : [ "US" ] } ] }