4 回答
TA贡献1864条经验 获得超2个赞
如果您保存在数据库中的日期没有时间(恰好是年,月,日),那应该可行。
您保存的日期可能是new Date(),其中包括时间成分。要查询这些时间,您需要创建一个包含一天中所有时刻的日期范围。
db.posts.find( //query today up to tonight
{"created_on": {"$gte": new Date(2012, 7, 14), "$lt": new Date(2012, 7, 15)}})
TA贡献1797条经验 获得超6个赞
对于使用Moment.js的我们
const moment = require('moment')
const today = moment().startOf('day')
MyModel.find({
createdAt: {
$gte: today.toDate(),
$lte: moment(today).endOf('day').toDate()
}
})
重要提示:所有时刻都是可变的!
tomorrow = today.add(1, 'days')不起作用,因为它也会突变today。调用moment(today)通过隐式克隆解决了该问题 today。
TA贡献1816条经验 获得超4个赞
你有没有尝试过:
db.posts.find({"created_on": {"$gte": new Date(2012, 7, 14), "$lt": new Date(2012, 7, 15)}})
您将要遇到的问题是日期在Mongo中存储为时间戳。因此,要匹配日期,您要求它匹配时间戳。就您的情况而言,我认为您要尝试匹配一天(即特定日期的00:00到23:59)。如果您的日期没有时间存储,那您就可以了。否则,如果gte不起作用,请尝试将您的日期指定为同一天的时间范围(例如,开始= 00:00,结束= 23:59)。
- 4 回答
- 0 关注
- 927 浏览
添加回答
举报