从 MongoDB 中的单个数组元素中取消设置一个属性?
使用 $unset 运算符来取消一个属性设置。我们首先创建一个包含文档的集合,代码如下:-
> db.unsetAnAttributeDemo.insertOne( ... { ... _id: 1, ... "StudentDetails": [ ... { ... "StudentFirstName": "Ramit", ... "StudentCountryName":"UK" ... }, ... { ... "StudentFirstName": "Bob", ... "StudentCountryName":"US" ... }, ... { ... "StudentFirstName": "Carol", ... "StudentCountryName":"AUS" ... ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : 1 }
以下查询通过 find() 方法显示集合中的所有文档,代码如下:-
> db.unsetAnAttributeDemo.find().pretty();
这将生成以下输出:-
{ "_id" : 1, "StudentDetails" : [ { "StudentFirstName" : "Ramit", "StudentCountryName" : "UK" }, { "StudentFirstName" : "Bob", "StudentCountryName" : "US" }, { "StudentFirstName" : "Carol", "StudentCountryName" : "AUS" } ] }
以下查询取消从一个数组元素中设置一个属性。值为“AUS”的“StudentCountryName”属性将被取消设置,代码如下:-
> db.unsetAnAttributeDemo.update({"StudentDetails.StudentCountryName": "AUS"}, {$unset: {"StudentDetails.$.StudentCountryName": 1}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
让我们显示集合中的文档,以检查“StudentCountryName”值“AUS”的属性是否已被清除,代码如下:-
> db.unsetAnAttributeDemo.find().pretty();
这将生成以下输出:-
{ "_id" : 1, "StudentDetails" : [ { "StudentFirstName" : "Ramit", "StudentCountryName" : "UK" }, { "StudentFirstName" : "Bob", "StudentCountryName" : "US" }, { "StudentFirstName" : "Carol" } ] }
广告