根据日期和月份从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操作符。

任何帮助将不胜感激。

+0

如果乌拉圭回合的日期是像createdAt在毫秒也存储然后ü需要使用关系运算符 – Sam

您可以使用日期汇聚运营商$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 
     } 
    } 
    ] 
)