2016-04-25 48 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