有没有办法将 distinct 与另一个命令结合起来,不仅可以打印不同的属性,还可以打印链接到不同属性的属性?
例如,仅打印下表中的 0,foo 和 1,bar。
-----------------
| id | name |
| 0 | foo |
| 1 | bar |
| 1 | bar |
我目前正在使用
>db.foo.distinct('id')
返回数据库上的 id 以及使用它来打印数学名称的内容。
有没有办法将 distinct 与另一个命令结合起来,不仅可以打印不同的属性,还可以打印链接到不同属性的属性?
例如,仅打印下表中的 0,foo 和 1,bar。
-----------------
| id | name |
| 0 | foo |
| 1 | bar |
| 1 | bar |
我目前正在使用
>db.foo.distinct('id')
返回数据库上的 id 以及使用它来打印数学名称的内容。
你可以试试这个:
db.foo.group({key:{'id':1}, initial: {sum:0}, reduce:function(doc,prev){prev.sum += 1}});
您可以使用 MapReduce 完成此操作,如下所示:
map = function(){
emit(this.id+","+this.name, {id: this.id, name: this.name})
}
reduce = function(key, values){
return {"id": values[0].id, "name": values[0].name};
}
db.mycollection.mapReduce(map, reduce, {out: "myresult_collection"})
db.myresult_collection.find({}, {value: true, _id: false})