mongodb update メソッドに少し問題があります。これは私の(簡略化された)スキーマです:
{
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 に設定すると、同じことが行われます。)