2017-10-11 3 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

その後、uは関係演算子を使用する必要があります – Sam

答えて

0

あなたはどんな年に、現在の日と月を一致させるために、日付集計演算子$month$dayOfMonthを使用することができます:ウル日付はミリ秒も保存されているcreatedAtのようなものである場合

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 
     } 
    } 
    ] 
) 
関連する問題