根据日期和月份从mongodb获取文档
问题描述:
我希望获取dob ISODate(“2017-10-11T18:30:00.000Z”)与当前日期匹配的所有员工文档。由于在几年内有差异,所以我无法通过匹配dob直接获得。 架构细节:根据日期和月份从mongodb获取文档
var employee = new mongoose.Schema({
name: String,
code: String,
phone: String,
email: String,
status: String,
dob: Date
})
所以我尝试这些:
- 无法使用
regex
,因为它适用于字符串。 - 无法使用像
gt gte lt lte
这样的关系运算符,因为它不是我想要的。 - 也试过与其他mongodb操作符。
任何帮助将不胜感激。
答
您可以使用日期汇聚运营商$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
}
}
]
)
如果乌拉圭回合的日期是像createdAt在毫秒也存储然后ü需要使用关系运算符 – Sam