1

MongoDB で、辞書値の配列を含むコレクション (本質的にはコレクション内のコレクション) を定義すると、内部コレクションの特定のレコードをフェッチして更新することは可能ですか?

例えば:

user {
   'name': unicode,
   'game_list: [ {'game_name': unicode, level: int, 'rank': int} ]
}

この例では、Python PyMongo を使用して、名前 X と game_name Y を持つユーザーのゲーム リストからゲーム レコードを取得して更新できますか? したがって、このユーザーが 10 ゲームをプレイした場合、game_list 全体を取得して更新するのではなく、1 つのゲーム レコードのみを取得して更新する必要があります。

4

1 に答える 1

3

mongodb では、位置演算子を使用して内部コレクションの要素を更新できます

db.user.update({ name : "foo", "game_list.game_name" : "bar" }, { $set : { "game_list.$.level" : 99 }})

参照: http://docs.mongodb.org/manual/reference/operator/update/positional/

于 2012-05-29T20:17:10.650 に答える