2017-07-12 10 views
0

私はコードの下に書きました。日付と時刻を分割しようとしましたが、正しい解決策を得ることができません。ノードJSにサービスを書きます。私は日付の間に日付を取得しようとすると、それは動作しています。しかし、私が正確な日付を取得しようとすると、それは動作していません。mongodbのdatetimeから日付を分割する方法は?

exports.screenLog = function(req,res){ 
 
console.log(req.query); 
 
Timesheet.find({userId: req.params.id,startTime: $match:{$gte : new Date(req.query.startTime),$lte: new Date(req.query.endTime)}}, function (err, timesheet) { 
 
console.log(timesheet); 
 
    var timesheetIdArray = timesheet.map(function(ele){return ele._id}); 
 

 
    Screenshot.find() 
 
    .where('timesheetId') 
 
    .in(timesheetIdArray) 
 
    .exec(function(err,data){ 
 
    //console.log('ScreenData:',data); 
 
    if(err) { 
 
     res.send(err); 
 
    } 
 
    
 
    res.send(data); 
 
    }); 
 
    
 
});

This is My input format below: 
 
[ 
 
    { 
 
     "_id": "5963653e6b43611240189ea2", 
 
     "timesheetId": "595f4f2ec456a422bc291169", 
 
     "imageUrl": "/images/2017-07-10_05_00_06_PM.jpg", 
 
     "__v": 0, 
 
     "createdTime": "2017-07-07T09:06:54.000Z" 
 
    }, 
 
    { 
 
     "_id": "5964bef37302792b0864009e", 
 
     "timesheetId": "595f4f2ec456a422bc291169", 
 
     "imageUrl": "/images/2017-07-11_05_35_07_PM.jpg", 
 
     "__v": 0, 
 
     "createdTime": "2017-07-11T12:05:07.687Z" 
 
    }, 
 
    { 
 
     "_id": "5964bf897302792b086400ad", 
 
     "timesheetId": "595f4f2ec456a422bc291169", 
 
     "imageUrl": "/images/2017-07-11_05_37_37_PM.jpg", 
 
     "__v": 0, 
 
     "createdTime": "2017-07-11T12:07:37.446Z" 
 
    }, 
 
    { 
 
     "_id": "5964ddf0ee77e90288d26eec", 
 
     "timesheetId": "5964ddf0ee77e90288d26eeb", 
 
     "imageUrl": "/images/2017-07-11_07_47_20_PM.jpg", 
 
     "__v": 0, 
 
     "createdTime": "2017-07-11T14:17:20.651Z" 
 
    }]

答えて

1

日付と時刻はMongoDB.Theyに分割することはできませんデータベースにDateオブジェクトに格納されています。

しかし、あなたは唯一のUTCの日付と比較することができます比較のためなど$gte,$lte,$eqでは

を日付を比較することができ、このためにあなたがmomentライブラリを見つけることができ

例えば:日付:{$ GTE :モーメント(YOUR_DATE_IN_STRING)}

0

私はNode.jsのとあまり慣れていないが、私は、プロジェクトの集約は、ここであなたを助けるかもしれないと思う:

db.MyCollection.aggregate(
[ 
    { 
    $project: 
      { 
       year: { $year: "$MyDateField" }, 
     month: { $month: "$MyDateField" }, 
     day: { $dayOfMonth: "$MyDateField" }, 
     hour: { $hour: "$MyDateField" }, 
     minutes: { $minute: "$MyDateField" }, 
     seconds: { $second: "$MyDateField" }, 
     milliseconds: { $millisecond: "$MyDateField" }, 
     dayOfYear: { $dayOfYear: "$MyDateField" }, 
     dayOfWeek: { $dayOfWeek: "$MyDateField" }, 
     week: { $week: "$MyDateField" } 
      } 
     } 
] 

)この戻ります

{ 
    "_id" : "5897697667f26827dc9c9028", 
    "year" : 2017, 
    "month" : 2, 
    "day" : 5, 
    "hour" : 18, 
    "minutes" : 5, 
    "seconds" : 41, 
    "milliseconds" : 822, 
    "dayOfYear" : 36, 
    "dayOfWeek" : 1, 
    "week" : 6 
} 

は、ソリューションにあなたがどんな近づいていることですか?

+0

私はこれが5時間30分を追加しないことによってすべての統計情報を提供すると思います。その中に存在する日付はUTC – hardy

関連する問題