1

使用 MongoDB,如果我定义一个包含字典值数组的集合,本质上是集合中的集合,是否可以获取和更新内部集合的特定记录?

例如:

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

在此示例中,是否可以使用 Python PyMongo 从游戏列表中为名称为 X 和游戏名称为 Y 的用户获取和更新游戏记录?因此,如果该用户玩了 10 场游戏,我不想获取和更新整个 game_list,而只想获取和更新一条游戏记录。

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 回答