1

個別の属性だけでなく、個別の属性にリンクされた属性も出力するために、別のコマンドと個別を組み合わせる方法はありますか?

たとえば、下の表から 0,foo と 1,bar だけを出力します。

-----------------
|  id  |  name  |
|  0   |  foo   |
|  1   |  bar   |
|  1   |  bar   |

私は現在使用しています

>db.foo.distinct('id')

データベースにIDを返し、それを使用してマッチング名を出力します。

4

2 に答える 2

6

これを試すことができます:

db.foo.group({key:{'id':1}, initial: {sum:0}, reduce:function(doc,prev){prev.sum += 1}});
于 2012-06-26T08:28:52.183 に答える
5

これは、次のように 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})
于 2012-06-26T00:48:00.860 に答える