Mongodb 从 Array 对象的所有文档中删除字段?
Mongodb remove field from Array objects all documents?
我有一个集合,其中包含如下所示的文档:
_id : 21353456,
product : "xy",
text : "asdf",
reviews : [
{
username : "User1",
userID: 12
text : "hi",
},
{
username : "User2",
userID: 123
text : "hi1",
}
]
}
我想从这个数组中的对象中删除用户名中的字段。
我试过这个
db.collection.update({}, {$unset: {"reviews.username": 1}}, {multi: true})
我什至尝试了 updateMany,它只是匹配了 Couunt 并得到了确认。
尝试使用位置标识符并执行如下操作:
db.collection.update({}, {$unset: {"reviews.$[].username":true}}, {multi:true})
我个人更喜欢使用以下方法:
db.collection.update({"reviews.username": {$exists: true}}, {$unset: {"reviews.$.username":true}}, {multi:true})
因为有时你应该在删除之前检查它是否存在(这样你就不会得到任何错误)。
我有一个集合,其中包含如下所示的文档:
_id : 21353456,
product : "xy",
text : "asdf",
reviews : [
{
username : "User1",
userID: 12
text : "hi",
},
{
username : "User2",
userID: 123
text : "hi1",
}
]
}
我想从这个数组中的对象中删除用户名中的字段。 我试过这个 db.collection.update({}, {$unset: {"reviews.username": 1}}, {multi: true}) 我什至尝试了 updateMany,它只是匹配了 Couunt 并得到了确认。
尝试使用位置标识符并执行如下操作:
db.collection.update({}, {$unset: {"reviews.$[].username":true}}, {multi:true})
我个人更喜欢使用以下方法:
db.collection.update({"reviews.username": {$exists: true}}, {$unset: {"reviews.$.username":true}}, {multi:true})
因为有时你应该在删除之前检查它是否存在(这样你就不会得到任何错误)。