猫鼬从查找方法返回数组



我试图查询我的Mongo数据库中的集合。我对Mongo很陌生(来自Laravel和正常的关系数据库),我发现从数据库中获得结果有点挑战性。

我有一个名为cars的集合该集合中有超过1000个文档,我想返回一个汽车数组然后我可以循环或使用传统的JS魔术,我试图返回一个3小时前的汽车数组基于我添加的created_at字段....

mongoose.connect(process.env.DB_CONNECTION, { useNewUrlParser: true, useUnifiedTopology: true }, () => console.log('connected'))
const db = mongoose.connection
const threeHoursAgo = moment(new Date()).subtract({hours: 2})
db.collection('cars').find({ 'created_at': { $gte: threeHoursAgo } }).then((res) => {
console.log(res) // no array items???
})

我的实现似乎没有给我任何结果,在所有其他的一些大的通用对象似乎是mongodb模式的东西,如cmd对象和options对象等…

我错过了什么?

这也是值得注意的,我没有一个模型为我的数据,因为这是切换到mongodb而不是像SQL的原因之一,所以只需要使用db.collection(),然后查询这样的东西

我认为您的查询没有返回任何结果,因为您正在传递瞬间对象。您需要使用.toDate()将其中包含的日期转换为Mongo可以理解的内容。如moment文档中所述:

const threeHoursAgo = moment(new Date()).subtract({hours: 2}).toDate()

最新更新