【发布时间】:2018-11-08 19:28:27
【问题描述】:
我传入两个日期,格式为MM-DD-YYYY,这是一个日期范围。我需要查询该范围内的所有记录并包含指定的字段。我没有运气。
Mongo 记录的一部分:
{
"_id": "some ID",
"date": {
"$date": "2015-06-26T13:02:12.121Z"
},
查询:
var Start = '09-07-2015'
var End = '09-14-2015'
如果我这样做:
var query = Order.find({
date : {
$lt : End,
$gt : Start
}
});
我按预期在周范围内获得了完整的文档。但是,我想指定要返回的字段而不是完整的文档。所以我尝试使用分组和项目来指定这些字段:
var query = Order.aggregate(
{
$match :
{
date: {
$gte: start,
$lt: end
}
},
$group:
{
cust_ID: '$request.headers.customer_id',
wholesaler_ID: '$request.headers.wholesalerID'
}
}
);
同样:我也尝试过使用项目来获得我想要的结果。我想它可能与09-07-2015 这样的日期字符串不匹配,所以我直接包含了 ISO 日期。仍然没有运气...查询返回未定义或为空:
var query = Order.aggregate(
{
$project:
{
date: 'date',
cust_ID: '$request.headers.custID',
wholesaler_ID: '$request.headers.wholesalerID'
}
},
{
$match :
{
date: {
$gte: "2014-12-09T21:02:56.872Z",
$lt: "2015-12-09T21:02:56.872Z"
}
}
}
);
【问题讨论】: