Arrays 如果mongodb中不存在grand children元素,如何添加它?
我需要向grand children元素添加新元素。例如,我需要将新仓库添加到现有产品中。在本例中,所有size.wares都有LAX,但产品“aaaa”、尺寸“42”和产品“bbbb”、尺寸“45”中缺少“NYC” 因此,我需要检查所有产品及其尺寸,如果存在“NYC”,则添加新的“NYC” 例如产品“bbbb”尺寸“45” “向上插入”后应该是这样吗 这是一个:Arrays 如果mongodb中不存在grand children元素,如何添加它?,arrays,mongodb,updates,Arrays,Mongodb,Updates,我需要向grand children元素添加新元素。例如,我需要将新仓库添加到现有产品中。在本例中,所有size.wares都有LAX,但产品“aaaa”、尺寸“42”和产品“bbbb”、尺寸“45”中缺少“NYC” 因此,我需要检查所有产品及其尺寸,如果存在“NYC”,则添加新的“NYC” 例如产品“bbbb”尺寸“45” “向上插入”后应该是这样吗 这是一个: db.collection.updateOne( { productCode: "bbbb" }, { $p
db.collection.updateOne(
{ productCode: "bbbb" },
{
$push: {
"sizes.$[item].wares": {
_id: ObjectId("5db72c636309f84479ec0c7a"),
ware: "NYC",
amount: 0
}
}
},
{ arrayFilters: [{ "item.size": "45" }] }
)
注意,为了避免重复,您可以使用$addToSet
而不是$push
{
"_id": ObjectId("5db72c636309f84479ec0c7q"),
"size": "45",
"wares": [
{
"_id": ObjectId("5db72c636309f84479ec0c7n"),
"ware": "LAX",
"amount": 16
}
]
}
{
"_id": ObjectId("5db72c636309f84479ec0c7q"),
"size": "45",
"wares": [
{
"_id": ObjectId("5db72c636309f84479ec0c7n"),
"ware": "LAX",
"amount": 16
},{
"_id": ObjectId("5db72c636309f84479ec0c7x"),
"ware": "NYC",
"amount": 0
}
]
}
db.collection.updateOne(
{ productCode: "bbbb" },
{
$push: {
"sizes.$[item].wares": {
_id: ObjectId("5db72c636309f84479ec0c7a"),
ware: "NYC",
amount: 0
}
}
},
{ arrayFilters: [{ "item.size": "45" }] }
)