嵌套关系 MongoDb
Nested Relations MongoDb
我需要一些帮助。
我有 2 MongoDB 个我想要关联的集合。一个用于类别,另一个用于多媒体内容。一个类别可以包含一个多媒体内容和多个子类别。
通过管道执行聚合后,我得到返回格式(见图 1):Category.Media 内的媒体元素和 Category.Childs 内的子类别。我的问题是我不知道如何在子类别中再次插入媒体(见图 2)
我也把用过的管道放在下面
返回结果:
预期结果:
管道:
[
{
"$match": {
"id_site": 3,
"id_parent": null,
"id_class": null
}
},
{
"$lookup": {
"from": "categories",
"localField": "_id",
"foreignField": "id_parent",
"as": "Childs"
}
},
{
"$lookup": {
"from": "media",
"localField": "id_media",
"foreignField": "_id",
"as": "Media"
}
}
]
提前致谢。
任何建议表示赞赏。
您必须修改第一个 $lookup
以使用 pipeline(从 v3.6 开始可用)
[
{
"$match": {
"id_site": 3,
"id_parent": null,
"id_class": null
}
},
{
"$lookup": {
"from": "categories",
"let": {
"cid": "$_id"
},
"pipeline": [
{
"$match": {
"$expr": { $eq: ["$id_parent", "$$cid"] }
}
},
{
"$lookup": {
"from": "media",
"localField": "id_media",
"foreignField": "_id",
"as": "Media"
}
}
],
"as": "Childs"
}
},
{
"$lookup": {
"from": "media",
"localField": "id_media",
"foreignField": "_id",
"as": "Media"
}
}
]
我需要一些帮助。 我有 2 MongoDB 个我想要关联的集合。一个用于类别,另一个用于多媒体内容。一个类别可以包含一个多媒体内容和多个子类别。
通过管道执行聚合后,我得到返回格式(见图 1):Category.Media 内的媒体元素和 Category.Childs 内的子类别。我的问题是我不知道如何在子类别中再次插入媒体(见图 2)
我也把用过的管道放在下面
返回结果:
预期结果:
管道:
[
{
"$match": {
"id_site": 3,
"id_parent": null,
"id_class": null
}
},
{
"$lookup": {
"from": "categories",
"localField": "_id",
"foreignField": "id_parent",
"as": "Childs"
}
},
{
"$lookup": {
"from": "media",
"localField": "id_media",
"foreignField": "_id",
"as": "Media"
}
}
]
提前致谢。 任何建议表示赞赏。
您必须修改第一个 $lookup
以使用 pipeline(从 v3.6 开始可用)
[
{
"$match": {
"id_site": 3,
"id_parent": null,
"id_class": null
}
},
{
"$lookup": {
"from": "categories",
"let": {
"cid": "$_id"
},
"pipeline": [
{
"$match": {
"$expr": { $eq: ["$id_parent", "$$cid"] }
}
},
{
"$lookup": {
"from": "media",
"localField": "id_media",
"foreignField": "_id",
"as": "Media"
}
}
],
"as": "Childs"
}
},
{
"$lookup": {
"from": "media",
"localField": "id_media",
"foreignField": "_id",
"as": "Media"
}
}
]