Nestjs Mongoose问题,按日期类型查询

hec6srdp  于 2023-05-18  发布在  Go
关注(0)|答案(1)|浏览(155)

我在Nestjs Mongoose中遇到了一个关于日期查询的问题,我在我的项目中使用了Mongoose。我想根据日期字段查询一些文档
我的查询看起来像:this.model.find(startDate:{$gte:new Date().toUTCString()})因此它将转换为:2023-05-17T09:37:23.592Z这样
在我的DB我有一个记录,它具有startEnd:2023-05-17T12:30:23.306+00:00我希望得到文档,但它没有
但是如果我将上面的查询粘贴到MongoDB Compass。成功了
当我console.log在pre hook find.它记录了2023-05-17T09:37:23.592Z但是当我打开Mongo调试模式时。显示:collection.find({ startDate: { '$lte': new Date("Wed, 17 May 2023 09:51:24 GMT") } }, { projection: null })
我不知道为什么这里印着GMT?
我使用Windows,Mongodb Docker版本6.x
请帮帮我先谢了

iqxoj9l9

iqxoj9l91#

Hi @阮泰首先我看到了两个查询之间的区别,在第一个中你使用的是$gte,但在第二个中你使用的是$lte。所以,请确保目前哪个是正确的。
当你使用.toUTCSTring()方法时,它会将你的日期转换为字符串,在你的数据库中,startDate可能存储在对象的日期类型中。所以你可以通过使用简单的日期对象collection.find({ startDate: { '$lte': new Date()} })来消除这个错误

相关问题