我的 MongoDB 数据库中有这个数据结构:
"menu": [
{
"dishCategory":"61e6089f209b802518e2b4a4",
"dishMeals": [
{
"dishMealName": "Burger King",
"dishMealIngredients": "Burger lepinja, bbq sos, berlin sos, zelena"
"dishMealPrice": 5
}
]
}
]
如何在 dishMeals 中以确切的 dishCategory 推送新对象(我提供 dishCategoryId
、newDish
通过 req.body 的餐厅的对象和 _id)我已经尝试过了,但没有任何改变:
await Restaurants.updateOne(
{
'_id' : _id,
'menu.dishCategory' : dishCategoryId
},
{
$push : {
'menu.$.dishMeals' : newDish
}
}
);
最佳答案
- 使用
arrayFilters
过滤数组字段中的嵌套文档,然后$push
如果arrayFilters
中的过滤条件满足。
db.collection.update({
"_id": _id,
"menu.dishCategory": dishCategoryId
},
{
$push: {
"menu.$[menu].dishMeals": newDish
}
},
{
arrayFilters: [
{
"menu.dishCategory": dishCategoryId
}
]
})
关于javascript - Mongoose - 如何在嵌套的对象数组中推送对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70779241/