node.js - 无法按日期/时间在 Waterline 中找到记录

标签 node.js mongodb 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());
});

最佳答案

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

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

那么您的查询应该会找到所有在未来开始的Game

当然,因为您的代码只是返回当前日期,所以您根本不需要 moment:

var _date = new Date();

同样有效。

关于node.js - 无法按日期/时间在 Waterline 中找到记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23527136/

相关文章:

linux - 无法在自定义 Linux 上运行 mongod

node.js - 使用 sailsjs 无法在不同模型的方法中找到用户

node.js - 异步 Node.js 循环中的变量作用域

javascript - 使用 SuperTest 避免断言错误时 Mocha 超时?

node.js - MEAN 应用程序中项目的单独页面

javascript - MongoDB 在对象数组中搜索字符串

mongodb - 如何使用 pymongo 获取 mongo 实例中所有数据库的列表

android - 从 Android 向 node.js 服务器发送带有 JSON 的 POST 请求

javascript - 如何导出 promise 以在 Node 中的其他地方重用

node.js - 使用 NodeJS 验证 Azure AD B2C 中 JWT 的签名