2013-01-17 49 views
0

我有一大堆的文件:如何計算Mongo中的最大值和唯一值?

{ "name" : "A", "value" : 10}, 
{ "name" : "B", "value" : 12}, 
{ "name" : "B", "value" : 14}, 
{ "name" : "A", "value" : 16}, 
{ "name" : "C", "value" : 11} 

我要找到每個名字的最低值,因此結果將是

{ "name" : "A", "value" : 10}, 
{ "name" : "B", "value" : 12}, 
{ "name" : "C", "value" : 11} 

什麼是正確的方式做在蒙戈此查詢?我一直在思考SQL。

+0

使用MongoDB的[聚合框架(http://docs.mongodb.org/manual/applications/aggregation/)像這樣分組查詢。 – JohnnyHK

+0

as @JohnnyHK said'aggregate({$ group:{_id:「$ name」,value:{$ max:「$ value」}}})'或者類似的東西 – Sammaye

+1

你在尋找每個組的最大值還是分?你的標題說最大,但你的問題說分鐘... – Sammaye

回答

2

至少,您可以通過使用Mongo的聚合框架與「$group」和「$ min」來完成此操作。假設你有一個名爲「MyCollection的,」你可以嘗試這樣的集合:對於

db.myCollection.aggregate({$group:{_id:"$name", minimumValue: {$min : "$value"}}});