2015-09-24 29 views
0

我有以下格式的mongodb數據。我在下面給出了兩行我名爲'feed'的表的mongodb數據。如何按給定格式對以下數據進行mongodb分組的結果

{

"_id" : ObjectId("55e80a725ae35bbfc6dce074"), 
"sourceId" : "12345", 
"sourceName" : "MyPage", 
"channelId" : "67890", 
"channelName" : "Facebook", 
"likeCount" : 1, 
"feedData" : { 
    "from" : { 
     "id" : "416992615172913", 
     "name" : "Ashish Kumar" 
    }, 
    "created_time" : "2015-08-04T09:54:39+0000", 
}, 
"sentiment" : "neutral", 

}

{

"_id" : ObjectId("55e80a725ae35bbfc6dce074"), 
"sourceId" : "23456", 
"sourceName" : "YourPage", 
"channelId" : "67890", 
"channelName" : "Facebook", 
"likeCount" : 2, 
"feedData" : { 
    "from" : { 
     "id" : "416992615172913", 
     "name" : "Ashish Kumar" 
    }, 
    "created_time" : "2015-08-04T09:54:39+0000", 
}, 
"sentiment" : "positive", 

}

我想在字段feedData.from.id執行GROUPBY其中CHANNELNAME等於'Facebook的,相似計數的總和,數組中的所有來源,數組中的所有情緒。我希望使用spring mongo以下面給出的格式與feedData.from.id相關聯的所有數據。

{

「feedDatafromid」: 「416992615172913」,

「名稱」: 「與Ashish庫馬爾」,

「SOURCENAME」:[ 「我的頁面」, 「YourPage」],

「信道」: 「臉譜」,

「likeCount」:3,

「S entiment」:‘中性’,‘積極’]

}

有人可以幫我寫在java中春代碼組的MongoDB的數據中給出的方式。

回答

0

假設我們有FeedDbBean類來保存聚合結果。 (「commentCount」).as(「commentCount」).as(「commentCount」).addToSet(「)」作爲(「likeCount」)。 SOURCENAME 「)。如(」 SOURCENAME 「)。addToSet(」 的SourceID 「)。如(」 的SourceID 「)。addToSet(」 情緒 「)。如(」 情緒 「)。addToSet(」 的channelID 「)。如(」 的channelID 「).addToSet(」 CHANNELNAME CHANNELNAME 「)addToSet(userIdKey)。如(」 postUserId 「)addToSet(userNameKey)。如(」 postUserName「)) 」)作爲(「;

results = mongoTemplate.aggregate(agg,FEED_COLLECTION_NAME,FeedDbBean.class);

if(null!= results) List feedList = results.getMappedResults();

...................

因此,使用給定的代碼代表userIdKey的結果將被存儲在FeedDbBean的列表。

每個FeedDbBean對象將具有如下方式的屬性。

feedDbBean.userId =(用戶id)

feedDbBean.userName =(用戶名)

feedDbBean。likeCount =(像數組的總和用戶id)

feedDbBean.commentCount =(評論數GROUPBY用戶ID的總和)

feedDbBean.sourceName =(都是唯一的源名稱由用戶標識顯示用逗號分隔此組)

feedDbBean.sentiment =(用逗號分隔的所有情感用戶標識)

相關問題