我是Node.js和Mongodb的新手,所以请耐心等待。
我从多个地方读过,存储日期的最佳方法是使用新的Date()。因此,在我将日期存储在Mongodb之前,我将其转换为新日期('10 / 07/2014'),将其转换为'Tue Oct 07 2014 00:00:00 GMT-0400(Eastern Daylight Time)'。
问题在于,如果我尝试对集合进行排序,它会按星期几(星期一,星期二,星期三等)对它们进行排序,而不是按实际日期排序。我在这做错了什么?下面是一些实际的代码:
//get date from a field and convert it
var date = new Date($('#inputDate').val());
//after storing it in the database I call this line and it sorts it by day of the week.
db.collection('gameslist').find().sort({date:1})
打印出已排序的收藏品,这些订单的日期按此顺序排列,即按星期几而不是实际日期。
Fri Feb 20 2015 00:00:00 GMT-0500 (Eastern Standard Time)
Mon Oct 13 2014 00:00:00 GMT-0400 (Eastern Daylight Time)
Sun Feb 15 2015 00:00:00 GMT-0500 (Eastern Standard Time)
Tue Oct 07 2014 00:00:00 GMT-0400 (Eastern Daylight Time)
我在其他帖子中注意到,当人们做类似新日期()时,他们的日期不会像我一样出现,而是出现较少的绒毛。
编辑:添加我的实际代码。
gamelist.js文件,它具有执行ajax调用的函数。
dateCompleted = new Date($('#addgame div input#inputDateCompleted').val());
var newGame = {
'title': $('#addgame div input#inputTitle').val(),
'datecompleted': dateCompleted,
'rating': $('#addgame div select#inputRating').val(),
}
// Use AJAX to post the object to our addgame service
$.ajax({
type: 'POST',
data: newGame,
url: '/games/addgame',
dataType: 'JSON'
})
addgame router at / games / addgame:
/*
* POST to addgame.
*/
router.post('/addgame', function(req, res) {
var db = req.db;
db.collection('gameslist').insert(req.body, function(err, result){
res.send(
(err === null) ? { msg: '' } : { msg: err }
);
});
});