猫鼬按日期查询
Posted
技术标签:
【中文标题】猫鼬按日期查询【英文标题】:Mongoose query by date 【发布时间】:2017-03-12 23:05:28 【问题描述】:我想用这样的文档结构查询 mongoDB:
var ExampleSchema = mongoose.Schema(
createdAt: type: Date, default: Date.now ,
validUntil: Date,
name: String
);
并且需要它只返回有效文档,即validUntil大于当前时间。这个不行,mongoose返回所有文档:
var d = new Date();
var n = d.toISOString();
Example.find( '$where': 'validUntil'>n )
【问题讨论】:
【参考方案1】:如果在今天找到,请使用momentjs
// start today
var start = moment().startOf('day');
// end today
var end = moment(today).endOf('day');
Example.find( validUntil: '$gte': start, '$lte': end )
【讨论】:
【参考方案2】:获取今天所有创建的帐户:
let start = new Date(now.getFullYear(),now.getMonth(),now.getDate(),1,0,0);
let end = new Date(now.getFullYear(),now.getMonth(),now.getDate()+1,0,59,59);
let query = createdAt: $gte: start, $lt: end ;
Account
.find(query)
.exec((err, accounts) => console.log(account) )
【讨论】:
【参考方案3】:像这样使用$gte
:
Example.find(
validUntil:
$gte: new Date(2016,09,30)
)
【讨论】:
@chovyDate.now()
返回一个数字而不是 Date 对象。如果要与当前日期进行比较,则只需使用new Date()
。以上是关于猫鼬按日期查询的主要内容,如果未能解决你的问题,请参考以下文章