【发布时间】:2012-07-25 07:48:40
【问题描述】:
我有一个包含候选人详细信息的 mongodb 数据
属性是基于列表的限定
doc1: "qualification" : ["BS","Diploma"]
doc1: "qualification" : ["BS","MS"]
doc1: "qualification" : ["PG"]
doc1: "qualification" : ["Diploma"]
doc1: "qualification" : ["BS"]
doc1: "qualification" : ["MS"]
doc1: "qualification" : ["BS","MS","Phd"]
据此,我使用 mongodb map/reduce 生成了前 3 名资格,它计算每个资格的出现次数,并过滤了前 3 名
结果是
{"BS":4,"MS":3,"Diploma":2}
但是这个 map/reduce 每次都会创建一个临时集合,所以我认为它会减慢我的应用程序的速度,我们可以在这种情况下使用 group 语句吗? 或者当我使用 python 时,我可以生成一个使用 counter() 的所有资格列表
哪个可行且耗时少?
【问题讨论】:
-
您可以使用mongodb.org/display/DOCS/Aggregation,而且您不必每次都创建一个临时集合。