【发布时间】:2014-08-02 09:52:01
【问题描述】:
收集一个包含许多属于特定组的元素的集合 - 举个例子,假设它看起来像这样:
collection = db['news']
{'source': 'New York Times', 'article_name': xxx, 'data_published': xxx, 'link': xxx,'index': xxx, 'first_paragraph': xxx }
{'source': 'Hacker News', 'article_name': xxx, 'data_published': xxx, 'link': xxx,'index': xxx, 'first_paragraph': xxx }
假设我想检索集合中每个不同 {'source'} 的最新文章,这样查询的返回将是最新发表的文章(一篇)'New York时报、《黑客新闻》等最新发表的文章(一篇)。
这可以在单个查询中完成,还是必须是多个查询,如果是后者,我是否首先必须构建一个唯一“来源”列表,然后从每个查询中查询一篇文章?
跟进:如何获得子分组,即假设数据库条目也有作者:
{'source': 'New York Times', 'author': xxx, 'article_name': xxx, 'data_published': xxx, 'link': xxx,'index': xxx, 'first_paragraph': xxx }
{'source': 'Hacker News', author': xxx, 'article_name': xxx, 'data_published': xxx, 'link': xxx,'index': xxx, 'first_paragraph': xxx }
目标是为每个“作者”返回一个条目(如前所述,但也按“源”分组为数组或字典)
【问题讨论】:
-
你可以用aggregation framework做到这一点