我使用MongoDB和mongoosejs,并且尝试使用日期获取数据
我有一个集合的汇总语句,可以接收当前时间少于24小时的所有数据。
,例如,如果 2019年3月30日T12:00 ,则只能获取所有已创建的数据,且大于 2019年3月29日T12:00
我尝试使用此代码,但我没有得到我需要的代码:
var dateLess24Hours = new Date(new Date().getTime()-24*60*60*1000).toISOString();
Collection.aggregate([
{$match: { user_id: ObjectId(req.params.user_id)}},
{$lookup:
{
from: 'items',
let: { user_id: '$user_id'},
pipeline: [
{$match:
{$expr:
{$and:
[
{$gt: ['$created', dateLess24Hours]},
{$eq: ['$user_id', '$$user_id']}
]
}
},
},
],
as: 'items'
}
},
{$unwind: {path: '$items', preserveNullAndEmptyArrays: true}}
], function (error, data) {
if (error) { rej(error) }
res.send({ success: true, data: data })
})
当我尝试这样做时:
Items.find({created: {$gt: dateLess24Hours}}, 'user_id text created', function(error, data){
res.send({data: data})
})
集合返回我需要的数据,但是当我使用 聚合 时,它不返回任何数据
* req.params.user_id =“ 5c980bec2aa629868965ff4c”或任何mongo ID
请让我知道您的答案,谢谢您的帮助。