Sails JS - Waterline ORM - 仅查询日期,而不是时间

rob*_*pim 5 sails.js waterline sails-mongo

希望查询日期人遇到过这个?

示例代码:

    ////MODEL
    module.exports = {
      attributes: {
        date: {
            type: 'date',
            required: true
        }    
      }
    };

    ////CONTROLLER
    var today = moment().toISOString();

    var queryObj = { date: today };
    var newDay = { date: today };

    Day.findOrCreate(queryObj, newDay).exec(function(err, day) {            
        console.log(day)
    });
Run Code Online (Sandbox Code Playgroud)

显然,这会在每次刷新时创建一条新记录,因为iso字符串将随着每秒的变化而变化.

谢谢您的帮助!

sgr*_*454 9

您可以查询包含所有今天的日期范围,而不是查询单个日期.首先,你需要真正该范围创造价值-我掀起这件事用的时刻,但可能有一个更好的方法:

var begin = moment(moment().format("YYYY-MM-DD")).toISOString();
var end = moment(moment().format("YYYY-MM-DD")).add(1, 'days').toISOString();
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用查询运算符搜索范围:

var queryObj = {date: {'>=': begin, '<': end}};
Day.findOrCreate(queryObj, newDay).exec(function(err, day) {            
    console.log(day)
});
Run Code Online (Sandbox Code Playgroud)

一如既往,要注意时区问题!