查找上周在mongo中创建的对象

时间:2015-10-18 05:59:00

标签: javascript mongodb mongoose

我有一个集合,其中包含一个名为timestamp的字段,其中包含日期对象。我有这个问题:

db.articles.find({
    timestamp:{
       '$lte':new Date(),
       '$gte': //Something to get the last week's date
    }
})

如果可能的话,我可以按照本文档中数组的长度对这些返回的文档进行排序。这是架构:

section: String,
title: String,
abstract: String,
url: String,
image: {
    url: String,
    caption: String
},
votes:{
    up: [ObjectID],
    down: [ObjectID]
},
comments:[ObjectID],
timestamp: Date

我想按votes.upvotes.down的差异大小对返回的对象进行排序。现在我在Javascript中对返回的对象进行排序,这实际上返回了数据。

3 个答案:

答案 0 :(得分:8)

似乎解决方案看起来应该是

db.articles.find({
    timestamp: {
        $gte: new Date(new Date() - 7 * 60 * 60 * 24 * 1000)
    }
});

答案 1 :(得分:0)

我找到了一个解决方案来获取上周创建的对象。

db.articles.find({timestamp:{'$lte':new Date(),'$gte':new Date(Date()-7)}})

这可以完成工作。但是我无法弄清楚如何按照数组的大小对返回的对象进行排序。

答案 2 :(得分:0)

它将返回前一周的数据,即从星期日到前一周的星期六,这是当地的星期日为起始日。

        { 
          $match: {
            createdAt: { 
              $gte: moment().day(-7).toDate(),
               $lt: moment().startOf('week').toDate()
            },
          }
        }
      ]);