我正在尝试在我的 Mongo 数据库中查询一个集合。我对 Mongo 很陌生(来自 Laravel 和普通关系数据库),我发现从数据库中获取结果有点挑战。
我有一个名为 cars
的集合,该集合中有 1,000 多个文档,我想返回一组汽车,然后我可以循环使用这些汽车或使用它们执行传统的 JS 魔术,我'我试图根据我添加的 created_at
字段返回 3 小时前的一系列汽车....
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???
})
我的实现似乎没有给我任何其他结果,即一些大型通用对象似乎是 Mongo DB 模式,其中包含 cmd
对象和 options
对象等。 ..
我错过了什么?
还有一点值得注意,我的数据没有模型,因为这是切换到 Mongo DB 而不是 SQL 之类的原因之一,所以只需要使用 db.collection()
然后像这样查询
答案 0 :(得分:0)
我认为您的查询没有返回任何结果,因为您按原样传递了 moment 对象。您需要使用 .toDate() 将其中包含的日期转换为 Mongo 可以理解的内容,如moment documenation 中所述:
const threeHoursAgo = moment(new Date()).subtract({hours: 2}).toDate()