mongodb更新内嵌数组的问题,只能用循环来处理吗
数据结构如上,更新的条件是yoocare_id,yoocare_info是一个数组,符合条件的yoocare_id可能有多个,需要把符合条件的residue_degree更新掉,现在我用的方法比较笨,先找到yoocare_info这个数组,然后用map循环,符合yoocare_id的,处理下residue_degree,最后拿到一个全新的yoocare_info数组,最后把数组更新掉,这种方法数量小的话,还能用数据量大的话,速度岂不是要爆炸。。。。
求老哥们指点
6 回复
@Studying-Man 没看懂啊 老哥,能不能稍微解释下 嘿嘿
@Studying-Man 老哥你 mongodb 本地的有没有升级到3.6,有没有看到官网这么例子
yoocare_info.yoocare_id 用这个当条件呢,这种数据结构分两个表是不是比较好点
@dengnan123 这个方式就可以解决你的需求了
db.devices.update({ ‘yoocare_info.yoocare_id’: ‘abc123’ }, { $set: { ‘yoocare_info.$.residue_degree’: ‘1’ } }, { multi: true })