python - MongoDB:更新文档中数组中的字典

标签 python mongodb

我找到了question这在技术上是相同的,但并没有完全回答我的问题,这个问题是 7 年前提出的。

我无法解决的问题是更新文档中数组中的字典。我需要将 deck 更改为 True,但它不会更新它。我也没有收到任何错误。

文档结构

{
            "user": 1234,

            "money": 0
            "inv_max": 100,
            "cards": [
                {
                    "name": "somename",
                    "power": 11,
                    "health": 10,
                    "rarity": 'bronze'
                    "deck": False,
                }
            ],

            "packs": {
                "bronze": 0,
                "silver": 0,
                "gold": 0,
                "diamond": 0,
                "mythical": 0
            }
}

应该更新它的代码(我使用的)

await db.inventory.update_one(
        {"user": self.user_id},

        {"$set": {f"cards.{index}.deck": True}}
     )

如果需要,我使用 MongoDB Atlas。

最佳答案

使用位置运算符$进行更新:

db.inventory.updateOne(
   { "user": "1234", "cards.name": "somename"},
   { "$set": { "cards.$.deck" : "True" }} )

关于python - MongoDB:更新文档中数组中的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57671944/

相关文章:

python - VScode : Automating conversion of python file to Jupyter notebook with a task

python - 当我尝试使用一个函数来替换幂函数时不断收到错误,即当提高到 1/2 时

javascript - 在 mydb.collection().find().toArray 回调中编写 re.send() 函数是否无效?

javascript - 对多个 MongoDB 聚合函数使用 Async Parallel

Python setup.py - 仅安装修改过的文件

python - 匀称的 polygon_.buffer(0) "loses"我领结的一半

python - 在 Windows 7 上打开注册表项时出现问题

mongodb - 无法将类型 bson.Raw 转换为 BSON 文档 : length read exceeds number of bytes available

mysql - Redis/Memcached/MongoDB(或任何 NoSQL 系统)是否支持 MySQL 的 ON DUPLICATE KEY UPDATE?

node.js - Mocha 单元测试 Mongoose 模型