我有一个 mongo 集合,其中包含如下文档:
{
area: "Some area",
group: "group name", // area includes different groups
name: "name" // there are many names in each group
}
对于前端,我需要一个树状结构:
{ _id: "area name",
name: "same as _id",
ap: {
children: [
{ name: "group name, children: [ { name: "name from the doc" } ] },
...
]
}
}
我感兴趣的是使用聚合框架执行此操作有多难,或者是否可以这样做?或者更好地在客户端计算这个?
最佳答案
虽然可能需要付出大量努力(以及非常冗长的管道)才能让当前的聚合框架输出类似的结构,但它并不简单或合适。聚合框架旨在聚合文档并生成摘要、组等。虽然它可以进行数据投影,但如果您需要结果中的多个字段,您会发现它很麻烦。
目前框架的局限性也值得一看here . 2.4 的结果总计不能超过 16MB。
我建议您在客户端构建结构。它将数据库从繁忙的工作中解放出来,并将工作分配给客户端。如果它是一个大型结构,您无论如何都应该考虑缓存结果。
关于mongodb - 以树状结构聚合文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19024082/