Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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按日期获取集合_Javascript_Html_Node.js_Mongoose - Fatal编程技术网

Javascript 无法使用mongoose按日期获取集合

Javascript 无法使用mongoose按日期获取集合,javascript,html,node.js,mongoose,Javascript,Html,Node.js,Mongoose,我无法按日期查询集合筛选 下面的代码是我到目前为止的代码 //The following code shows how my schema is: date: {type: Date, required: true} //This is a date from a collection in MongoDB: date: 2019-09-06T16:48:14.000+00:00 //This is how I saved the date in the MongoDB: "2019/09

我无法按日期查询集合筛选

下面的代码是我到目前为止的代码

//The following code shows how my schema is:

date: {type: Date, required: true}

//This is a date from a collection in MongoDB:
date: 2019-09-06T16:48:14.000+00:00

//This is how I saved the date in the MongoDB:
"2019/09/09 08:55:15"

//And this is how I perform the query in NodeJS:

let year = req.query.year;
let month = req.query.month;
let day = req.query.day;

let startDate = new Date(year, month, day);
let endDate = new Date(year, month, day);

// find documents in MongoDB
let query = SALES.find({ date: { $gte: startDate, $lte: endDate }});

// execute the query at a later time
query.exec(function (err, item) { // item is a dictionary
    if (err) return handleError(err); // throws an error if any
    if (item === null || item.length === 0) {
        res.json({
            status: 'empty',
        });
    }
    else {
        res.json({
            salesRecord: item
        });
     }
});

我读到的东西很容易得到,但我做不到。欢迎任何帮助简短回答

您保存的日期(“2019/09/09 08:55:15”)将被视为字符串

试试这个:

db.mycollection.find({
    "date" : {"$gte": new Date()}
})

说明

Mongodb shell提供了各种方法来返回日期。它可以是字符串,也可以是日期对象:

  • 方法,该方法以字符串形式返回当前日期
  • 新的Date()构造函数,它使用ISODate()包装返回日期对象
  • ISODate()构造函数,使用ISODate()包装返回日期对象

  • 简短回答

    您保存的日期(“2019/09/09 08:55:15”)将被视为字符串

    试试这个:

    db.mycollection.find({
        "date" : {"$gte": new Date()}
    })
    

    说明

    Mongodb shell提供了各种方法来返回日期。它可以是字符串,也可以是日期对象:

  • 方法,该方法以字符串形式返回当前日期
  • 新的Date()构造函数,它使用ISODate()包装返回日期对象
  • ISODate()构造函数,使用ISODate()包装返回日期对象

  • 您可以显示您的
    req.query
    吗?req.query有一些值,例如:year=2019,month=08,day=09,等等。您的
    startDate
    endDate
    具有相同的值,因此数据库中的记录需要具有与
    新日期(年、月、日)完全相同的日期。
    是的,它们有,并且查询不起作用;(您能显示您的
    req.query
    吗?req.query有一些值,例如:year=2019,month=08,day=09,等等。您的
    startDate
    endDate
    具有相同的值,因此数据库中的记录需要与
    新日期(年、月、日)完全相同。
    是的,它们有,查询不起作用(