Mongodb按星期而不是实际日期排序。我究竟做错了什么?

时间:2015-02-25 15:04:12

标签: node.js mongodb date

我是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 }
        );
    });
});

0 个答案:

没有答案