如何使用子文档计数来注释结果文档?

时间:2012-01-16 12:47:29

标签: mongodb

我有一个类别集合,每个类别文档都包含指向其父级的链接(根类别除外)。到目前为止非常简单。

我想列出类别,并为每个直接后代数量的文档添加subcategory_count字段。

我应该怎么做呢? Map / Reduce可以使用吗?

2 个答案:

答案 0 :(得分:1)

MongoDB中没有“计算列”,因此您无法同时选择数据和计算子文档。

这也是大多数人将数组长度与数组一起存储的原因。

{friends_list: [1, 3, 234, 555],
 friends_count: 4}

这有助于更轻松地检索,过滤,排序等。但它需要更多的手动工作。

所以,你基本上只限于这些选项:

  1. 将所有内容存储在一个文档中。

  2. 在类别中存储子类别计数。

  3. 在客户端计算子类别。

答案 1 :(得分:0)

find()获取所有这些,计算每个级别的子类别数,然后更新()。

但是看起来您的域对象应该为您执行此操作,因此您最终会得到一个可以包含类别的类别对象(也可能包含类别...),因此一个mongodb文档(您正在列出)无论如何所有这些,所以在一个查询中回顾整个事情是有意义的。)