您的位置:首页 > 数据库 > Mongodb

mongodb update多层嵌套数组

2017-04-25 17:20 471 查看
This is more or less my current schema:

{ "_id" : 1
"user_id": 1,
"message" : "Yes"
"translations" : [
{
"destination" : "fr",
"text": "Oui",
"rating" : [
{ "user_id" : 1,
"rating" : 1
},
{ "user_id" : 2,
"rating" : 1
}
]
}
]
}


这个更新语句会报错,目前不支持多个$占位符

db.getCollection('message').update({
'_id': 1,
'translations.destination': 'fr',
'translations.rating.user_id':'1'
},
{
'$set': {
"translations.$.rating.$.rating": 5
}
}


最好修改数据格式,采用key-value格式

{ "_id" : 1
"user_id": 1,
"message" : "Yes"
"translations" : {
"fr": {
"destination" : "fr",
"text": "Oui",
"rating" : [
{ "user_id" : 1,
"rating" : 1
},
{ "user_id" : 2,
"rating" : 1
}
}
},
"en": {...}
]
}


这样就可以更新了

“translations.fr.rating.$.rating”: 5


方法来自于 https://pythonolyk.wordpress.com/2016/01/17/mongodb-update-nested-array-using-positional-operator/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb
相关文章推荐