2017-10-11 64 views
0

我希望獲取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

回答

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 
     } 
    } 
    ] 
)