我正在尝试使用moment
对象查询我的mongodb集合。这些文档包含一个如下所示的日期字段:
"date" : ISODate("2019-03-21T00:00:00Z"),
像这样的普通查询可以正常工作:
const now = moment().utc()
console.log(await Price.find({ date: now.startOf('day') }))
但是,当我尝试这样做时:
const results = await Price.aggregate([
{ $match: { date: now.startOf('day') } }
])
我没有结果。为什么会这样?
如果查询为{ date: new Date(now.startOf('day')) }
,我将获得汇总的结果。
答案 0 :(得分:1)
区别在于,猫鼬会根据模型的已定义架构为find
而不是aggregate
投射查询值。
文档here中对此进行了说明:
猫鼬不投放管道阶段。
下面将解释使用{ date: new Date(now.startOf('day')) }
的原因,因为这正是您必须使用aggregate
进行的手动投射。