У меня есть 3 коллекции mongodb со многими ко многим,
Коллекция productfeatures - это коллекция отношений.
db={
"products": [
{
"id": 1,
"name": "product 1"
}
],
"features": [
{
"id": 101,
"name": "width"
},
{
"id": 102,
"name": "length"
},
{
"id": 103,
"name": "height"
}
],
"productfeatures": [
{
"productId": 1,
"featureId": 101,
"value": "3"
},
{
"productId": 1,
"featureId": 102,
"value": "4"
},
{
"productId": 1,
"featureId": 103,
"value": "5"
}
]
}
Я хочу получить все функции продукта, например, как это можно сделать?
[
{
"id": 1,
"name": "product 1",
"productfeatures": [
{
"feature": "width",
"value": "3"
},
{
"feature": "length",
"value": "4"
},
{
"feature": "height",
"value": "5"
}
]
}
]
Я знаю, как получить особенности продукта со стадией поиска:
db.products.aggregate([
{
$match: {
id: 1
}
},
{
$lookup: {
from: "productfeatures",
localField: "id",
foreignField: "productId",
as: "productfeatures"
}
}
])
Но я также хочу присоединиться к коллекции функций, чтобы получить имя функции.
https://mongoplayground.net/p/J-20zxxFW5q