2017-03-04 50 views
1

我有一個集合。下面是樣本文件返回唯一的mongo文件

{ 
"bannerUserSessionId" : "565269c7d52ece855050b3b7bd4ae8d6f52161871394e2d312c340a086f93314", 
"bannerId" : "<String> kitchen-chimneys||1488286849020|HP|PromoBanner4", 
"bannerEventLabel" : "<String> kitchen-chimneys", 
"bannerPage" : "HP", 
"bannerWidget" : "PromoBanner4", 
"bannerClickTimestamp" : "Mar 04, 2017 15:05:56 PM" 
} 
{ 
"bannerUserSessionId" : "565269c7d52ece855050b3b7bd4ae8d6f52161871394e2d312c340a086f93314", 
"bannerId" : "<String> kitchen- chimneys||1488286849020|HP|PromoBanner4", 
"bannerEventLabel" : "<String> kitchen-chimneys", 
"bannerPage" : "HP", 
"bannerWidget" : "PromoBanner4", 
"bannerClickTimestamp" : "Mar 04, 2017 15:06:19 PM" 
} 

是否可以查詢的MongoDB這樣的方式,我會得到唯一的文檔與上述兩個文件是不同的,除了Timestamp對象一樣嗎?

所以我只想要一個記錄。

回答

2

您可以通過密鑰$group並選擇$first時間戳值。

db.collection.aggregate([{ 
    $group: { 
     _id: { 
      "bannerUserSessionId": "$bannerUserSessionId", 
      "bannerId": "$bannerId", 
      "bannerEventLabel": "$bannerEventLabel", 
      "bannerPage": "$bannerPage" 
     }, 
     "bannerClickTimestamp": { 
      $first: "$bannerClickTimestamp" 
     } 
    } 
}])