我希望获得所有那些dob ISODate(" 2017-10-11T18:30:00.000Z")与当前日期匹配的员工文档。由于年份不同,所以我无法通过匹配dob直接获得。 架构详细信息包括:
var employee = new mongoose.Schema({
name: String,
code: String,
phone: String,
email: String,
status: String,
dob: Date
})
所以我尝试了这些:
regex
,因为它适用于字符串。gt gte lt lte
之类的关系运算符,因为它不是我想要的。任何帮助将不胜感激。
答案 0 :(得分:0)
您可以使用日期汇总运算符$month
和$dayOfMonth
来匹配当前日期和月份,无论年份如何:
db.employee.aggregate(
[
{
$project: {
day: { $dayOfMonth: "$dob" },
month: { $month: "$dob" },
name: true,
code: true,
phone: true,
email: true,
status: true
}
},
{
$match: {
day: new ISODate().getDate(),
month: new ISODate().getMonth() + 1
}
}
]
)