使用MongoDB,如果我定义一个包含字典值数组的集合,本质上是集合中的集合,是否可以获取和更新内部集合的特定记录?
例如:
user {
'name': unicode,
'game_list: [ {'game_name': unicode, level: int, 'rank': int} ]
}
在这个例子中,是否有可能使用Python PyMongo从名为X和game_name Y的用户的游戏列表中获取和更新游戏记录?因此,如果这个用户玩过10个游戏,我不想获取和更新整个game_list,只需要一个游戏记录。
答案 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/