按日期进行的Mongoose查询

ace*_*196 10 mongoose mongodb node.js mongodb-query

我想用这样的文档结构查询mongoDB:

var ExampleSchema = mongoose.Schema({
    createdAt: { type: Date, default: Date.now },
    validUntil: Date,
    name: String
});
Run Code Online (Sandbox Code Playgroud)

并且需要它仅返回有效文档,即validUntil大于当前时间.这不起作用,mongoose返回所有文件:

var d = new Date();
var n = d.toISOString();
Example.find({ '$where': 'validUntil'>n })
Run Code Online (Sandbox Code Playgroud)

Ber*_*tel 17

使用$gte这样:

Example.find({
    validUntil: {
        $gte: new Date(2016,09,30)
    }
})
Run Code Online (Sandbox Code Playgroud)

  • @chovy `Date.now()` 返回一个数字而不是 Date 对象。如果您想与当前日期进行比较,只需使用“new Date()”即可。 (3认同)

Tín*_*ang 8

如果在今天找到,使用momentjs

// start today
var start = moment().startOf('day');
// end today
var end = moment(today).endOf('day');

Example.find({ validUntil: { '$gte': start, '$lte': end })
Run Code Online (Sandbox Code Playgroud)