'Mongodb remove field from Array objects all documents?
I have a collection that has documents looks something like this:
_id : 21353456,
product : "xy",
text : "asdf",
reviews : [
{
username : "User1",
userID: 12
text : "hi",
},
{
username : "User2",
userID: 123
text : "hi1",
}
]
}
I want to remove the field in username from the objects in this array. I tried this db.collection.update({}, {$unset: {"reviews.username": 1}}, {multi: true}) I tried with even updateMany and it just matchedCouunt and acknowledged.
Solution 1:[1]
Try using the positional identifier and do something like:
db.collection.update({}, {$unset: {"reviews.$[].username":true}}, {multi:true})
Personally I prefer using the method below:
db.collection.update({"reviews.username": {$exists: true}}, {$unset: {"reviews.$.username":true}}, {multi:true})
Because sometimes you should check if it exists before you do the deleting (this way you won't get any errors).
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
