如何更新数组中的sku
值,如示例“B”所示。我应该和A一起过B吗?
"data" : {
"products" : {
235099432:{
"product_id" : 101242538,
"sku" : "",
"variant_id" : 235099432
},
]
}
db.col.update({
"data.products.235099432.variant_id": 235099432
}, {
$set: {
"data.products.235099432.sku": "ITM-RED-212"
}
});
"data" : {
"products" : [
{
"product_id" : 101242538,
"sku" : "",
"variant_id" : 235099432
},
]
}
答案 0 :(得分:1)
您可以使用$
position operator标识要更新的products
数组元素与您的过滤器匹配:
db.col.update({
"data.products.variant_id": 235099432
}, {
$set: {
"data.products.$.sku": "ITM-RED-212"
}
});
我的投票将是选项B;在选项A中使用动态键可能会非常混乱。