我有一个名为JobPosting
的集合,它有一个名为publishDate
的字段,我想要做的是获取在过去30天之前发布的记录数。
我试过的是:
db.JobPosting.aggregate([
{$match:{
"publishDate":{$gt: new Date(ISODate().getTime() - 1000*60*60*24*30)}
}},
{$project:{
"publishDate":{$gt: new Date(ISODate().getTime() - 1000*60*60*24*30)
}},
{$group:{
_id:publishDate,
"count":{$sum:1}
}}
])
答案 0 :(得分:2)
您可以这样做,不需要使用aggregation
;
db.JobPosting.find( { publishDate: { $lt : new Date(ISODate() - (1000*60*60*24*30) ) } } )
.count()
获取JobPosting
字段在今天之前的publishDate
字段中的文档数 - 30天。由于您希望之前的日期(今天 - 30天)点,
你必须使用$lt
。 Tested on MongoDB web shell.