我有这个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循环吗?
答案 0 :(得分:1)
目前,MongoDB不支持一次更新多个数组元素。但是,您可以选择使用Update if Current模式或类似的模式在本地更新文档,然后在数据库中替换它,而不是按顺序执行多个更新。
另外,请查看原始jira,您可以在评论中找到一些解决方法。