我有一个类别集合,每个类别文档都包含指向其父级的链接(根类别除外)。到目前为止非常简单。
我想列出类别,并为每个直接后代数量的文档添加subcategory_count
字段。
我应该怎么做呢? Map / Reduce可以使用吗?
答案 0 :(得分:1)
MongoDB中没有“计算列”,因此您无法同时选择数据和计算子文档。
这也是大多数人将数组长度与数组一起存储的原因。
{friends_list: [1, 3, 234, 555],
friends_count: 4}
这有助于更轻松地检索,过滤,排序等。但它需要更多的手动工作。
所以,你基本上只限于这些选项:
将所有内容存储在一个文档中。
在类别中存储子类别计数。
在客户端计算子类别。
答案 1 :(得分:0)
find()
获取所有这些,计算每个级别的子类别数,然后更新()。
但是看起来您的域对象应该为您执行此操作,因此您最终会得到一个可以包含类别的类别对象(也可能包含类别...),因此一个mongodb文档(您正在列出)无论如何所有这些,所以在一个查询中回顾整个事情是有意义的。)