Javascript Mongoose.js find Dayed';数据库中的日期
我想找到昨天之前创建的所有用户。这是生成查询字符串的代码:Javascript Mongoose.js find Dayed';数据库中的日期,javascript,node.js,mongodb,mongoose,database,Javascript,Node.js,Mongodb,Mongoose,Database,我想找到昨天之前创建的所有用户。这是生成查询字符串的代码: var today = new Date(); var a = today.getDate(); a--; today.setDate(a); var yesterday = today.toDateString(); 它返回类似于:2016年1月17日太阳报。。。这是昨天的日期,但数据库以iso格式存储日期,如:“date”:ISODate(“2016-01-13T13:23:08.419Z”),因此我得到的是2016-01-13T
var today = new Date();
var a = today.getDate();
a--;
today.setDate(a);
var yesterday = today.toDateString();
它返回类似于:2016年1月17日太阳报。。。这是昨天的日期,但数据库以iso格式存储日期,如:“date”:ISODate(“2016-01-13T13:23:08.419Z”)
,因此我得到的是2016-01-13T13:23:08.419Z
。我现在的问题是,我不能使用昨天变量来查询数据库中我需要的用户,即使我可以,我也不知道如何找到每个注册,不包括今天发生的注册
有什么帮助吗?多谢各位 您在前端生成一个日期,然后将其向后推一天,这在很多情况下都是完全正确的- 为此,由于您正在尝试查找发生的DB条目,因此可以尝试使用从数据库中每个文档的ID中提取的时间戳来查询数据库 下面是一些关于如何从mongoDB实现这一点的文档 我还提供了一些额外的资源,可以帮助您准确地了解有关此方法的查询内容: 一些psuedo代码:
1. Query documents in the database
2. Get a timestamp from the ID's of the documents in the database
3. Set a range of the timestamps
4. Compare returned timestamps vs a timestamp range variable (yesterdays date in this case)
5. Have the DB return only documents that are within the range
我希望这有帮助 创建一个表示今天一天开始的日期对象,使用它查询集合中
date
字段小于该变量的文档,如下例所示
var start = new Date();
start.setHours(0,0,0,0);
db.users.find({ "date": { "$lt": start }});
这将查找到昨天为止创建的用户
是一款非常方便的实用工具,可用于执行此类操作。使用该库,可以通过当前日期对象上的方法实现这一点,将字符串'day'
作为参数传递:
当地格林尼治标准时间:
var start = moment().startOf('day'); // set to 12:00 am today
db.users.find({ "date": { "$lt": start }});
使用以下方法尝试此操作:
var start = moment.utc().startOf('day');
yesterday = moment().add(-1, 'days');
db.users.find({ "date": { "$lt": yesterday }});