首页 > 解决方案 > MongoDB中的类别层次结构

问题描述

我的文档结构如下:

[
    {
      "_id": ObjectId("54d81827e4a4449d023b4e34"),
      "name": "Refridgerator",
      "parent": null,
      "slug": "refridgerator"
    },
    {
        "_id": ObjectId("54d818227e4a4449d023b4e34"),
        "name": "Generator",
        "parent": null,
        "slug": "generator",
    },
    {
        "_id": ObjectId("54dc38bcse4a4449d023b4e58"),
        "name": "Bolt",
        "slug": "bolt",
        "parent": ObjectId("54d818227e4a4449d023b4e34")
    },
    {
      "_id": ObjectId("54dc38bce4a4449d023b4e58"),
      "name": "Ice Cream",
      "slug": "ice-cream",
      "parent": ObjectId("54d81827e4a4449d023b4e34")
    },
    {
      "_id": ObjectId("54dc3705e4a4449d023b4e56"),
      "name": "Chocolate",
      "slug": "chocolate",
      "parent": ObjectId("54d81827e4a4449d023b4e34")
    },
    {
        "_id": ObjectId("54dc38bce4a4449d023b4e68"),
        "name": "Mango Cream",
        "slug": "mango-cream",
        "parent": ObjectId("54dc38bce4a4449d023b4e58")
    },
    {
        "_id": ObjectId("54dc38bc74a4449d023b4e68"),
        "name": "Mango Cream Cream",
        "slug": "mango-cream-cream",
        "parent": ObjectId("54dc38bce4a4449d023b4e68")
    },
  ]

我正在使用 mongodb 及其类似的父子关系创建类别层次结构。类别为4级。

现在我想查询 _id = '54d81827e4a4449d023b4e34' 并且应该取回所有子类别。

我无法使用父子关系构建 json。

在之前提出的问题中没有输出所需的结果。

预期输出:

    [
    {
      "_id": ObjectId("54d81827e4a4449d023b4e34"),
      "name": "Refridgerator",
      "parent": null,
      "slug": "refridgerator",
      "subCategory": [
        {
          "_id": ObjectId("54dc3705e4a4449d023b4e56"),
          "name": "Chocolate",
          "parent": ObjectId("54d81827e4a4449d023b4e34"),
          "slug": "chocolate"
        },
        {
          "_id": ObjectId("54dc38bce4a4449d023b4e58"),
          "name": "Ice Cream",
          "parent": ObjectId("54d81827e4a4449d023b4e34"),
          "slug": "ice-cream",
          'subsubcategory':[
            {
                "_id": ObjectId("54dc38bce4a4449d023b4e68"),
                "name": "Mango Cream",
                "slug": "mango-cream",
                "parent": ObjectId("54dc38bce4a4449d023b4e58"),
                'subsubsubcategory':[
                    {
                        "_id": ObjectId("54dc38bc74a4449d023b4e68"),
                        "name": "Mango Cream Cream",
                        "slug": "mango-cream-cream",
                        "parent": ObjectId("54dc38bce4a4449d023b4e68")
                    },
                  ]
            }
          ]
        }
      ]
    },
    {
        "_id": ObjectId("54d818227e4a4449d023b4e34"),
        "name": "Generator",
        "parent": null,
        "slug": "generator",
        "subCategory": [
          {
            "_id": ObjectId("54dc38bcse4a4449d023b4e58"),
            "name": "Bolt",
            "slug": "bolt",
            "parent": ObjectId("54d818227e4a4449d023b4e34")
          },
        ]
    }
  ]

标签: mongodbaggregation-framework

解决方案


推荐阅读