如何在mongodb中查看过去7周内所有星期一的文件

时间:2016-01-06 05:48:01

标签: mongodb dayofweek

   {
    "_id" : ObjectId("568b650543712795bf864a45")
    "companyId" : "55e2d7cfdc8f74d14f5c900f",
    "timeStamp" : ISODate("2014-12-02T18:30:00.000Z")
   },
   {
    "_id" : ObjectId("568b650543712795bf864a46")
    "companyId" : "55e2d7cfdc8f74d14f5c900f",
    "timeStamp" : ISODate("2014-12-03T18:30:00.000Z")
 },
  {
    "_id" : ObjectId("568b650543712795bf864a47")
    "companyId" : "55e2d7cfdc8f74d14f5c900f",
    "timeStamp" : ISODate("2014-12-04T18:30:00.000Z")
 }

从过去7周的timeStamp字段中检索星期一的所有文件。

1 个答案:

答案 0 :(得分:2)

您必须使用mongodb聚合框架来实现此目的。

以您使用的任何编程语言查找开始日期(当前日期 - 7周)。 然后你必须使用聚合操作$ dayOfWeek来实现这个


var pipeline = [
    {
      $match: {timeStamp: {$gte: startDate}}
    },
    {
      $project: {dayOfWeek: {$dayOfWeek: '$timeStamp'}} 
    },
    {
      $match: {dayOfWeek: 1}
    }
  ];
db.mycollection.aggreage(pipeline)
 

在上面我只预测了一个字段,你可以投影更多字段。

有关详情,请点击$dayOfWeek