我有这个 MongoDb 模式:
tags:{
"image_uid":"",
"faces": [
{
"image_uid":"",
"age_real":""
}
]}
女巫我用字典更新
feedbacks = [{
'face_uid': '02d42dee-3b66-11e2-b12e-e0cb4e12150c',
'age': 23
},
{
'face_uid': '02d42dee-3b66-11e2-b12e-e0cb4e12150d',
'age': 23
}]
这样:
for feedback in feedbacks:
tags.update(
{'image_uid': image_uid, 'faces.face_uid': feedback['face_uid']},
{"$set": {'faces.$.age_real': feedback['age']}}, w=1
)
有没有比for循环更高效的方法?
请您参考如下方法:
目前 MongoDB 不支持一次更新多个数组元素。但是,您可以选择使用 Update if Current,而不是按顺序执行多个更新。模式或类似的东西,在本地更新您的文档,然后在数据库上替换它。
另外,查看原文jira ,您可以在评论中找到一些解决方法。
