【问题标题】:Updating specific record in inner collection with MongoDB使用 MongoDB 更新内部集合中的特定记录
【发布时间】:2012-06-04 01:12:05
【问题描述】:

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

例如:

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

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

【问题讨论】:

  • 但请确保位置运算符不适用于嵌套级别超过一个,即数组中的数组

标签: mongodb pymongo mongodb-query


【解决方案1】:

在 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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 2021-07-27
    • 2012-03-14
    相关资源
    最近更新 更多