根据同一数组中另一个元素满足的条件更新 mongo collection 中的数组元素
update an element of an array in mongo collection based on a condition met by another element in the same array
下面是我的collection.
{
'_id': ObjectId('603fd4575250717d17aba89e'),
'user_id': 19,
'items': [
{
'price': 5,
'id': '342566b0d5f14117a228d8b17f215c4a'
},
{
'price': 5,
'id': '09e12c647fdf4c409e934eac23c73789'
}
],
}
我需要更新 ID 为 09e12c647fdf4c409e934eac23c73789 的元素的价格,它的当前值为 5,我需要将其更新为 6,请问我是否知道相同的查询。
我尝试了以下查询,但没有成功。
a = db.sample_collection.update_one({"items.$.id": "09e12c647fdf4c409e934eac23c73789"},
{"$set": {"items.$price": 6}})
有人能帮我解答一下吗?
更新查询应如下所示:
a = db.sample_collection.update_one({"items.id": "09e12c647fdf4c409e934eac23c73789"}, { "$set": { "items.$.price": 6 }})
这是一个例子 updating a document in an array. When performing an update, the positional operator, $ 应该只出现在更新文档中,而不应该出现在查询文档中。
下面是我的collection.
{
'_id': ObjectId('603fd4575250717d17aba89e'),
'user_id': 19,
'items': [
{
'price': 5,
'id': '342566b0d5f14117a228d8b17f215c4a'
},
{
'price': 5,
'id': '09e12c647fdf4c409e934eac23c73789'
}
],
}
我需要更新 ID 为 09e12c647fdf4c409e934eac23c73789 的元素的价格,它的当前值为 5,我需要将其更新为 6,请问我是否知道相同的查询。
我尝试了以下查询,但没有成功。
a = db.sample_collection.update_one({"items.$.id": "09e12c647fdf4c409e934eac23c73789"},
{"$set": {"items.$price": 6}})
有人能帮我解答一下吗?
更新查询应如下所示:
a = db.sample_collection.update_one({"items.id": "09e12c647fdf4c409e934eac23c73789"}, { "$set": { "items.$.price": 6 }})
这是一个例子 updating a document in an array. When performing an update, the positional operator, $ 应该只出现在更新文档中,而不应该出现在查询文档中。