3
我使用Mongoose来构建聚合管道,并且匹配工作正常,直到我想匹配日期使用$gte
和$lte
运营商。奇怪的是,如果我使用匹配查询在常规find()
,它按预期工作:
var query = {
dueDate: {
$gte: moment().toISOString() // I've also tried using $date { ... }
}
};
// finds entries matching the query [..., ...]
Model.find(query, callback);
但是,使用$match
聚集和相同的查询不会:
var aggregation = [{
$match: query
}];
// finds no entries (using the same query) []
Model.aggregate(aggregation, callback);
任何想法,为什么是这样吗?
非常感谢!
感谢。但不,它不是 – Mickel
写:var query = { dueDate:{ $ lte:new Date() } }; 然后用toISOString(下同),你会看到差异 VAR的查询= {。 的dueDate:{$ LTE:新的日期()toISOString() } }; – kaxi1993
啊,你是对的!然而,moment()不起作用,因为显然聚合需要一个本地的Date对象,所以moment()。toDate()在我的情况下工作。无论如何,它有点奇怪,但它不同于查找和聚合。 – Mickel