有没有一种方法可以在mongoDB/mongoose中查询文档,以匹配数组属性中日期时间大于指定日期的所有对象


const CourseSchema = new Schema({
course_name: {
type: String,
trim: true,
},
Course_Runs: [
{
run_id: {
type: String,
},
// This field is for Teachers that are involved in the course run
teachers: [{ type: Schema.Types.ObjectId, ref: "users" }],
// Course Date Duration will be an inferred field from first session and last session
Sessions: [{
session_start_datetime: {
type: Date,
},
session_end_datetime: {
type: Date,
},
]
}]
}

以上是模式的一个片段

我希望能够获取ALL Sessions对象的session_start_datetime大于指定日期(如当前日期(的文档。

YOURMODEL.find( { Sessions: { $all: [{session_start_datetime: {$gte: YOUR_DATE}] } } )

不要忘记以正确的日期格式传递YOUR_DATE,否则它将不起作用。

例如,如果您的日期是字符串:

YOURMODEL.find( { Sessions: { $all: [{session_start_datetime: {$gte: new Date(YOUR_DATE)}] } } )

尝试:

model.find({
'Course_Runs.Sessions.session_start_datetime': {
$gt: current_date
}
})

最新更新