gpt4 book ai didi

javascript - Mongoose - 如何在嵌套的对象数组中推送对象

转载 作者:行者123 更新时间:2023-12-05 01:05:13 24 4
gpt4 key购买 nike

我的 MongoDB 数据库中有这个数据结构:

"menu": [
{
"dishCategory":"61e6089f209b802518e2b4a4",
"dishMeals": [
{
"dishMealName": "Burger King",
"dishMealIngredients": "Burger lepinja, bbq sos, berlin sos, zelena"
"dishMealPrice": 5
}
]
}
]

如何在 dishMeals 中以确切的 dishCategory 推送新对象(我提供 dishCategoryIdnewDish通过 req.body 的餐厅的对象和 _id)我已经尝试过了,但没有任何改变:

await Restaurants.updateOne(
{
'_id' : _id,
'menu.dishCategory' : dishCategoryId
},
{
$push : {
'menu.$.dishMeals' : newDish
}
}
);

最佳答案

  1. 使用 arrayFilters过滤数组字段中的嵌套文档,然后 $push 如果 arrayFilters 中的过滤条件满足。
db.collection.update({
"_id": _id,
"menu.dishCategory": dishCategoryId
},
{
$push: {
"menu.$[menu].dishMeals": newDish
}
},
{
arrayFilters: [
{
"menu.dishCategory": dishCategoryId
}
]
})

Sample Mongo Playground

关于javascript - Mongoose - 如何在嵌套的对象数组中推送对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70779241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com