使用MongoDB更新内部集合中的特定记录

时间:2012-05-29 19:31:11

标签: mongodb pymongo mongodb-query

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

例如:

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

在这个例子中,是否有可能使用Python PyMongo从名为X和game_name Y的用户的游戏列表中获取和更新游戏记录?因此,如果这个用户玩过10个游戏,我不想获取和更新整个game_list,只需要一个游戏记录。

1 个答案:

答案 0 :(得分: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/