什么时候应该使用聚合管道mongodb?

时间:2018-07-25 11:03:22

标签: mongodb aggregation-framework querying

何时应使用聚合管道?

场景:我有一些像这样的mongo数据库文件

`

    {
    id:"",
    text:"",
    dept:"",
    group:"",
    parent:"",
    }

`

现在,我需要使用父字段从中准备一个树结构。

`

    tree:[
    {
    id:"",
    text:"",
    dept:"",
    group:"",
    parent:"",
    children:[
       {
         id:"",
         text:"",
         dept:"",
         group:"",
         parent:"",
    }]
    },{
    id:"",
    text:"",
    dept:"",
    group:"",
    parent:"",
    }]

`

现在,该结构可能会大量嵌套。据我所知,我可以编写用于构建此结构的聚合管道。但是问题是,这种结构将像页面的每次刷新一样频繁地准备。 我们应该使用管道还是应该将json文档按原样存储在树结构中。

1 个答案:

答案 0 :(得分:0)

Mongo带来的优势是其NoSQL无架构结构。您需要利用它,而不是将数据存储在关系模型中。

因此,当您意识到需要获取大量嵌套数据时,建议以这种方式对数据库建模,即将所有嵌套数据存储在单个文档中。因此,进行提取时,无需对它进行任何其他计算。

有关同一内容的更多信息,请参见this