我找到了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/