我有一些数据存储在MongoDB中,我想比较其中存储的日期是否在两个日期之间。问题是当我在查询中使用$gte或$lte时,它总是返回null。
模式:
const SettingSchema = new Schema({
advertisment: [
{
name: {
type: String,
required: true
}
,
fromdate: {
type: Date,
default: Date.now()
}
,
todate: {
type: Date
}
,
active:{
type:Boolean
}
}
]});
示例数据:
{
"advertisment": [
{
"fromdate": "2010-06-29T06:53:32.643Z",
"_id": "5d170b634ebf4d1848efbe9a",
"name": "ads1",
"todate": "2030-06-29T09:38:32.643Z",
"active": true
},
{
"fromdate": "2010-06-29T06:53:32.643Z",
"_id": "5d170baae38bc832c4d89d9a",
"name": "ads2",
"todate": "2030-06-29T09:38:32.643Z",
"active": true
}
]
}
查询:
let currentDate = new Date();
Setting.findOne(
{
"advertisment.active": true,
"advertisment.fromdate": { $gte: currentDate },
"advertisment.todate": { $lte: currentDate },
},
'advertisment')
.then(data =>
{
console.log(data);
})
.catch(err => console.log(err))
如何在MongoDB(mongoose)中比较这些日期?