Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mongoose.js find Dayed';数据库中的日期_Javascript_Node.js_Mongodb_Mongoose_Database - Fatal编程技术网

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 }});