2017-12-26 8 views
0
{ 
    "_id" : ObjectId("5a4212b49e710765c486d7c6"), 
    "student_id" : ObjectId("5a3df85bcc6425291c54d2ad"), 
    "attendance_status" : true, 
    "create_at" : 1514279592137.0, 
    "__v" : NumberInt(0) 
} 

{ 
    "_id" : ObjectId("5a4212b49e710765c486d7c7"), 
    "student_id" : ObjectId("5a3df85bcc6425291c54d2ae"), 
    "attendance_status" : true, 
    "create_at" : 1514279592137.0, 
    "__v" : NumberInt(0) 
} 

{ 
    "_id" : ObjectId("5a4212b49e710765c486d7c9"), 
    "student_id" : ObjectId("5a3df85bcc6425291c54d2b0"), 
    "attendance_status" : true, 
    "create_at" : 1514279592137.0, 
    "__v" : NumberInt(0) 
} 

私は時間をtrampとして保存します。私は作成月に基づいてデータを取得したい。それを達成するために?mongo dbで特定の月までにデータを見つける方法

次のクエリを使用してデータを検索しようとしています。

Attendance.aggregate(
    [{ 
     $project: { 
     create_at: "$create_at", 
     student_id: "$student_id", 
     attendance_status: "$attendance_status", 
     month: { 
      $month: "$create_at" 
     } 
     } 
    }, 
    { 
     $match: { 
     "month": req.body.month 
     } 
    }, 
]) 

作成月に基づいて出力します。 req.body.month = 3を送ってください。3ヶ月間のデータが必要です。

+0

の詳細については、あなたの質問について、より具体的なことができますか? mongodbを照会するのにあなたはどのライブラリを使用していますか?期待される成果は?例が役に立ちます。 –

+0

[mongodb集約でミリ秒を現在に変換する方法は?](https://stackoverflow.com/questions/29889719/how-to-convert-milliseconds-to-date-in-mongodb-aggregation) – Veeram

答えて

0

これを行うには、MomentJSライブラリが必要です。

Exemple:

var moment = require('moment'); 
var month = 3; // March 

// Find all documents between 2017/03/01 and 2017/03/31 
Attendance.find({ 
    create_at: { 
     $gte: moment(`2017/${month}`, 'YYYY/MM').startOf('month').format('x'), 
     $lte: moment(`2017/${month}`, 'YYYY/MM').endOf('month').format('x') 
    } 
}); 

はそれがお役に立てば幸いです。あなたがのためにデータを照会するために好きな月の

+0

i ' mongoError:BSON型からDate型に変換できません。このエラーです。 – Sakthivel

+0

まだ集計を使用していますか?または、検索リクエストを使用していますか? – Sparw

+0

集計を使用 – Sakthivel

2

、あなたがnew Date('YYYY-MM-DD').getTime()を使用して、タイムスタンプ(S)と終了タイムスタンプ(e)を開始し得ると

Attendance.find(
    { 
    create_at: { 
     $gte: s, //$gte corresponds to >= 
     $lte: e //$lte corresponds to <= 
     } 
    } 
) 

あなたが見つけることができるようデシベルを照会することができますこのようMongoの事業者here


+0

@Sakthivelあなたがそれを助けた場合、その答えを受け入れることができます。 :) –