Я использую гнездо JS в качестве бэкэнда, связанного с MongoDB. Я могу получить доступ к вложенному массиву в моей схеме:
{
"id": "productId",
"name": "productName",
"price": "productPrice",
"Categories": [
{
"_id": "catId",
"name": "catName",
"Subcategories": [
{
"_id": "subcatId",
"name": "subcatName"
},
{
"_id": "subcatId",
"name": "subcatName"
},
]
},
{
"_id": "catId",
"name": "catName",
"Subcategories": [
{
"_id": "subcatId",
"name": "subcatName"
},
{
"_id": "subcatId",
"name": "subcatName"
},
]
}
]
}
]
Я могу получить доступ к категориям и подкатегориям с помощью следующего:
db.collection.aggregate([
{
$match: {
"id": "productId"
}
},
{
$unwind: "$Categories"
},
{
$project: {
"_id": "$Categories._id",
"name": "$Categories.name"
}
}
])
db.collection.aggregate([
{
$match: {
"id": "productId"
}
},
{
$unwind: "$Categories"
},
{
$match: {
"Categories._id": "catId"
}
},
{
$unwind: "$Categories.Subcategories"
},
{
$project: {
_id: "$Categories.Subcategories._id",
name: "$Categories.Subcategories.name"
}
}
])
Проблема I Сейчас я сталкиваюсь с тем, как обновить категорию или подкатегорию, используя метод findOneAndUpdate.
Как мне go получить доступ к правильной категории / подкатегории _id для обновления?
Заранее спасибо.