【发布时间】:2020-05-15 18:50:39
【问题描述】:
我有一个“交付”模式,其中包含一个名为“deliverySubZoneSets”的字段,它是一个对象数组,
"deliverySubZoneSets" : [
{
"charges" : {
"delivery" : 30,
"service" : 0,
"packing" : 0,
"parking" : 50
},
"areas" : [
ObjectId("5d99c2a93a6a615ff9f7355a")
],
"deliveryAvgMaxTime" : 30,
}
]
我想用“deliveryAvgMaxTimeInUnits”更新所有现有的“Delivery”记录,其中我将用单位存储价值
"deliveryAvgMaxTimeInUnits": {
"value":30,
"units":"minutes"
}
所以我的数组看起来像这样-
"deliverySubZoneSets" : [
{
"charges" : {
"delivery" : 30,
"service" : 0,
"packing" : 0,
"parking" : 50
},
"areas" : [
ObjectId("5d99c2a93a6a615ff9f7355a")
],
"deliveryAvgMaxTime" : 30,
"deliveryAvgMaxTimeInUnits": {
"value":30,
"units":"minutes"
}
}
]
我可以通过遍历数组然后执行多个更新操作来做到这一点,但我可以在单个 updateMany 查询中做到这一点吗?
【问题讨论】:
-
您要更新的条件查询是什么?你在使用
_ids 的数组吗? -
@Thee Sritabtim deliverySubZoneSets.length > 0
-
deliveryAvgMaxTimeInUnits 中的值将始终为 30?
-
@PuneetSingh 不,它是动态的。基于 deliveryAvgMaxTime。
-
我认为不可能在单个查询中完成