我收集了这样的文件:
{
'email': 'daniele@gmail.com',
'calls':[
{
'day' : {'mm':9, 'dd':4},
'value' : "AA"
},
{
'day' : {'mm':9, 'dd':3},
'value' : "BB"
},
{
'day' : {'mm':9, 'dd':2},
'value' : "CC"
}
]
}
我如何才能用猫鼬更新选定的一天的值呢?我需要这样的东西:
用XX和YY更新2/9和3/9天的值
Users.findOneAndUpdate(
{
'email' : 'daniele@gmail.com',
'calls.day.mm' : 9,
'calls.day.dd' : {$in:[2, 3]}
},
{
'calls.$0.mm' : "XX",
'calls.$1.mm' : "YY"
});
其结果应该是:
{
'email': 'daniele@gmail.com',
'calls':[
{
'day' : {'mm':9, 'dd':4},
'value' : "AA"
},
{
'day' : {'mm':9, 'dd':3},
'value' : "YY"
},
{
'day' : {'mm':9, 'dd':2},
'value' : "XX"
}
]
}
发布于 2017-10-04 13:47:43
尝尝这个
Users.update(
{
'email': 'daniele@gmail.com',
'calls.day.mm':9,
'calls.day.dd':{
$in:[2,3]
}
},{
$set:{
"calls.1.value":"XXX",
"calls.2.value":"YYY"
}
})
发布于 2017-10-05 07:56:25
根据上述描述作为解决方案,请尝试执行以下MongoDB更新操作
db.users.update(
{
calls: {
$elemMatch: {
'day.dd': {
$in: [2, 3]
}
}
}
}, {
$set: {
'calls.$.value': 'XX'
}
}
)
https://stackoverflow.com/questions/46565002
复制相似问题