我的Node / Mongo端点之一具有多种过滤器,它们可以按日期过滤。例如,这是一种运行良好的产品:
// first purchase date after filter
if (firstPurchaseDateAfter && firstPurchaseDateBefore === "") {
let firstPurchaseDateAfterDate = new Date(firstPurchaseDateAfter);
search["firstTransaction.timestamp"] = {
$gt: firstPurchaseDateAfterDate
};
}
基本上,我输入一个字符串值,将其转换为日期,然后使用$gt
运算符进行比较。
目标值如下:
"timestamp": "2016-07-26T08:00:54.232Z"
因此,正如我所说的,上述逻辑非常有效。
我想知道的是,为什么使用$eq
运算符针对特定日期的类似构建的过滤器不起作用。这是代码:
// first purchase date equals filter
if (firstPurchaseDateEquals) {
let firstPurchaseDateEqualsDate = new Date(firstPurchaseDateEquals);
search["firstTransaction.timestamp"] = {
$eq: firstPurchaseDateEqualsDate
};
}
不能以这种方式在日期值上使用$eq
运算符吗?这是什么问题?