我使用 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);
知道为什么会这样吗?
非常感谢!
最佳答案
在使用聚合时删除 toISOString() 聚合不适用于此
这个有效:
var query = {
dueDate: {
$gte: moment()
}
};
关于node.js - MongoDB/ Mongoose : find(query) and aggregate([ $match: query ]) results differ when using dates and $gte/$lte,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26925671/