假设我有一个包含文件的MongoDB集合 -
{
"name": "Hawaiian",
"toppings": ['cheese', 'ham', 'pineapple'],
}
我怎样才能获得所有集合toppings
的列表?
我假设我必须使用MapReduce或新的聚合框架(理想情况下是MapReduce,因为我不能使用新的聚合框架),但我不知道该怎么做。
谢谢!
编辑:并且,有没有办法计算数据库级别的不同顶部数量?
答案 0 :(得分:1)
MongoDB支持DISTINCT聚合。这应该可以解决问题。
答案 1 :(得分:1)
您可以使用distinct
查询:
db.coll.distinct('toppings')
答案 2 :(得分:1)
distinct将适用于有限数量的唯一项目(< = 50k?)
fun_map =“”“function()for(e in this.toppings){emit(entities.toppings [e],1);}”“”
fun_reduce =“”“function(key,values){var total = 0; for(var i = 0; i< values.length; i ++){total + = values [i];} return total;} “”” 然后你打电话
您的顶部项目将是您的输出集合的_id,而值将代表每个特定顶部的计数