2016-04-25 80 views
0

我試圖將我的SQL查詢遷移到MongoDB。我堅持每天獲得計數。 我MSSQL查詢看起來是這樣的:MongoDB:每天計數條目

SELECT 
datepart(DAY, Timestamp) as day, 
datepart(MONTH, Timestamp) as month, 
datepart(YEAR, Timestamp) as year, 
count(RowKey) as Counts    //uniq 
FROM database 
GROUP BY 
datepart(YEAR, Timestamp), 
datepart(MONTH, Timestamp), 
datepart(DAY, Timestamp) 
ORDER BY 
datepart(YEAR, Timestamp), 
datepart(MONTH, Timestamp), 
datepart(DAY, Timestamp) ASC 

和結果:

Old MsSQL Output

的DB結構是平的:

{ 
    ... 
    Timestamp : 2016-01-17T17:46:10.984Z, 
    RowKey: 123, 
    ... 
} 
{ 
    ... 
    Timestamp : 2016-01-05T12:49:12.675Z, 
    RowKey: 124, 
    ... 
} 
... 

我是新來的MongoDB和已經嘗試過this但它沒有按照我想要的方式工作。我會感激提示。

+0

請問您能告訴我們數據結構是怎樣的嗎? –

回答

0

這可以幫助你。

db.urcollection.aggregate(
    [ 

    { 

$project: 

     { 
      year: { $year: "$Timestamp" }, 
      month: { $month: "$Timestamp" }, 
      day: { $dayOfMonth: "$Timestamp" } 
     } 
    }, 
    { 
    "$group": 
    { 
     "_id":{ 
     "year": "$year", 
     "month": "$month", 
     "day": "$day" 
     } , 
     "YEAR": { 
      "$first": "$year" 
       }, 
      "MONTH": { 
      "$first": "$month" 
      }, 
     "DAY": { 
      "$first": "$day" 
      } 

    } 
    }, 
    ] 
) 
+0

也可以在聚合管道中使用排序操作 – Amar

+0

感謝您的提示,但我沒有得到任何記錄。 0ms內獲取0條記錄 – DonKanallie

+0

您是否使用正確的收藏名稱?有沒有檢測到語法錯誤? – Amar