我有一个集合,其中包含一个名为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.up
和votes.down
的差异大小对返回的对象进行排序。现在我在Javascript中对返回的对象进行排序,这实际上返回了数据。
答案 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()
},
}
}
]);