我的mongodb更新方法有点问题。这是我的(简化)模式:
{
profile: {
birthdate: "XXX",
city: "xxx"
},
account: {
username: "...",
password: "....",
visits: 0
}
}
我在DB中有2000个对象。我想通过删除用户名值来匿名化数据。
我试过了:
db.users.update({}, {$set: account: {username: ""}}, false, true);
这不起作用,此查询删除密码字段和访问。我理解为什么,但怎么办?
db.users.update({}, {account: { $set: {username: ""}}}, false, true);
mongo想要分配“$ set”字段,这样就不行了。
我的问题是:如何在不删除整个“帐户”子文档的情况下更新后代字段?
(将“upsert”设置为true也是如此。)
答案 0 :(得分:4)
您应该使用:
$set:{"account.username":""}
只是想知道你为什么不使用$unset
?