无法按日期/时间在 Waterline 中查找记录

Seb*_*ian 5 mongodb node.js sails.js mean-stack waterline

如何比较 sails.js 模型中的日期时间?这就是我所做的,但没有运气。

var _date = moment().format('YYYY-MM-DDTHH:mm:ss.SSS') + 'Z';
Game.find({
    where:{
        active: true,
        start: {
            '>=' : _date
        }
    },
    limit: 1,
    sort: 'start asc'
}, function(err, game) {
    console.log('ERROR: ' + err);
    console.log('Game OBJ' + game.toString());
});
Run Code Online (Sandbox Code Playgroud)

sgr*_*454 5

datetime类型在 Waterline(Sails ORM)中转换为实际的 Javascript 日期。因此它需要与日期对象而不是字符串进行比较。您可以保持代码原样,但将第一行更改为:

var _date = new Date(moment().format('YYYY-MM-DDTHH:mm:ss.SSS') + 'Z');
Run Code Online (Sandbox Code Playgroud)

那么你的查询应该找到所有Game以未来开始的 s。

当然,由于您的代码只是返回当前日期,因此您根本不需要moment

var _date = new Date();
Run Code Online (Sandbox Code Playgroud)

也会同样有效。