首页 > 解决方案 > 在 MongoDB 上进行递归查找,查找每个结果项

问题描述

我正在开发一个电子商务后端,其中类别数据存储如下:

    {
      "_id": "60869fcade424d24d40ffc0b",
      "title": "test category 1",
      "shortDescription": "short desc test 1",
      "description": "long desc test 1",
      "url": "/category/test-category-1/urlslug",
      "displayOrder": null,
      "parent": "6085e18847faf7245c2f8e17",
      "cover": "60853538982d3c49b4697cd9",
      "image": [
        "60853538982d3c49b4697cd7",
        "60853538982d3c49b4697cd9"
      ],
      "icon": "60853538982d3c49b4697cd8",
      "locale": [
        {
          "_id": "608537b6210d8f2e0c2ea4b6",
          "title": "পরীক্ষার বিভাগ 1",
          "shortDescription": "পরীক্ষার বিভাগ test",
          "description": "পরীক্ষার বিভাগ 123"
        }
      ],
      "createdDate": "2021-04-26T11:11:06.330Z",
      "lastUpdatedDate": "2021-04-26T11:11:06.330Z",
    }

我试图以树状结构获取数据,其中结果文档中将有一个字段,该字段将以递归方式child保存在其字段中引用当前文档的子类别。parent此外,如您所见,有一个字段cover存储对_id集合的cover引用。我需要让那个cover领域得到尊重。

简而言之,我试图得到这样的结果

{
    _id: "0123456789abcdefgh",
    cover:{
        _id: "0123456789abcdefgg",
        //...
    },

   // ...

    child:[
        {
            _id: "0123456789abcdefgf",
            cover:{
                _id: "0123456789abcdefge",
                //...
            },
            // ...

            child: [
                //this goes on recursively
            ]
        },
        {
            _id: "0123456789abcdefgd",
            cover:{
                _id: "0123456789abcdefgc",
                //...
            },
            // ...

            child: [
                //this goes on recursively
            ]
        }
    ]
}

我已经使用$graphLookUp但无法找到一种方法来完全按照我想要的方式完成这项工作。

提前感谢您的帮助。我将不胜感激任何建议

标签: node.jsmongodbgraphlookup

解决方案


推荐阅读