1

我对 mongodb 更新方法有一点问题。这是我的(简化的)模式:

{
   profile: {
      birthdate: "XXX",
      city: "xxx"
   },
   account: {
      username: "...",
      password: "....",
      visits: 0
   }
}

我在数据库中有 2000 个对象。我想通过删除用户名值来匿名化数据。

我试过这个:

db.users.update({}, {$set: account: {username: ""}}, false, true);

这不起作用,此查询删除密码字段并访问。我明白为什么,但怎么办?

db.users.update({}, {account: { $set: {username: ""}}}, false, true);

mongo 想要分配“$set”字段,所以这不起作用。

我的问题是:如何在不删除整个“帐户”子文档的情况下更新后代字段?

(将“upsert”设置为 true 也是如此。)

4

1 回答 1

4

你应该使用:

$set:{"account.username":""}

只是想知道你为什么不使用$unset

于 2013-03-01T10:22:07.787 回答