1

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.

1 Answer 1

2

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).

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.