我需要在我的web應用程序中實現「熱門關鍵字」,以便大多數搜索到的關鍵字將顯示在那裏..爲此,我在mongo中創建了一個db。我需要從mongo中檢索數據,以便主要發生的關鍵字應該排序並返回到我的頁面。在SQL它就像爲, select names,count(names) from keyword_db group by names order by names;
根據出現次數在mongo中排序
需要Java代碼和蒙戈外殼查詢..
我需要在我的web應用程序中實現「熱門關鍵字」,以便大多數搜索到的關鍵字將顯示在那裏..爲此,我在mongo中創建了一個db。我需要從mongo中檢索數據,以便主要發生的關鍵字應該排序並返回到我的頁面。在SQL它就像爲, select names,count(names) from keyword_db group by names order by names;
根據出現次數在mongo中排序
需要Java代碼和蒙戈外殼查詢..
你可能想嘗試蒙戈外殼查詢(我排序按降序排列:
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/
對於排序,您可以使用following..1升序和-1遞減。
db.keyword_db.find({ names: "A" }).sort({ user_id: 1 })
和GROUPBY可以使用聚合框架..
http://docs.mongodb.org/manual/reference/method/db.collection.group/
嘗試看看MongoDB的聚合框架(MongoDB中2.1新) –
@SergeyGavruk日Thnx FR的respnse。我做了..我從那裏找不到任何東西。 –
嘗試查看'$ group'和'$ sort'運算符 –