2012-12-07 59 views
0

我需要在我的web應用程序中實現「熱門關鍵字」,以便大多數搜索到的關鍵字將顯示在那裏..爲此,我在mongo中創建了一個db。我需要從mongo中檢索數據,以便主要發生的關鍵字應該排序並返回到我的頁面。在SQL它就像爲, select names,count(names) from keyword_db group by names order by names;根據出現次數在mongo中排序

需要Java代碼和蒙戈外殼查詢..

+1

嘗試看看MongoDB的聚合框架(MongoDB中2.1新) –

+0

@SergeyGavruk日Thnx FR的respnse。我做了..我從那裏找不到任何東西。 –

+1

嘗試查看'$ group'和'$ sort'運算符 –

回答

2

你可能想嘗試蒙戈外殼查詢(我排序按降序排列:

db.keyword_db.aggregate ([ 
    { $group: { _id: "$names", count: { $sum: 1 } } }, 
    { $sort: { count: -1 } } ]) 

對於Java版本:

DBCollection myColl = db.getCollection("keyword_db"); 

    // for the $group operator 
    DBObject groupFields = new BasicDBObject("_id", "$names"); 
    groupFields.put("count", new BasicDBObject("$sum", 1)); 

    DBObject group = new BasicDBObject("$group", groupFields); 

    // for the $sort operator 

    DBObject sortFields = new BasicDBObject("count", -1); 

    DBObject sort = new BasicDBObject("$sort", sortFields); 

    // run the aggregation 

    AggregationOutput output = myColl.aggregate(group, sort); 

    System.out.println(output.getCommandResult()); 

下頁可以幫助您也:
http://docs.mongodb.org/manual/reference/sql-aggregation-comparison/

+0

Thnx fr respnse。我在shell中進行了測試,它顯示聚集不是函數。也是$ group的問題。它取決於mongodb版本。 –

+1

是的,我使用的是2.2版本。你至少需要2.1版本。 – Kay

+1

至於java驅動程序,至少需要Java驅動程序的2.9.0版本。 – Kay