Node.js 如何在Nodejs中基于ISODate获取数据?
我在MongoDB中有ISOdate格式的数据。当我在mango shell中运行查询时,它工作正常 但是当我在nodejs中使用相同的查询时,它给出了一个错误Node.js 如何在Nodejs中基于ISODate获取数据?,node.js,mongodb,mongoose,nodejs-server,Node.js,Mongodb,Mongoose,Nodejs Server,我在MongoDB中有ISOdate格式的数据。当我在mango shell中运行查询时,它工作正常 但是当我在nodejs中使用相同的查询时,它给出了一个错误 USED IN NODEJS router.get("/api/status/:id0/:id1",async(req,res)=>{ .......... .......... db.collection.aggregat
USED IN NODEJS
router.get("/api/status/:id0/:id1",async(req,res)=>{
..........
..........
db.collection.aggregate([
{$match:
{"time": {
"$gt": req.params.id0,//req.params.id0.toISOString()
"$lt": req.params.id1}
}
},
{$group:
{
_id: "$fb_id",
active:"$status"
}
}
]);
URL
localhost:3011/status/"2019-12-15T09:19:57.216071"/"2019-12-16T09:25:03.508605"
or
localhost:3011/status/2019-12-15T09:19:57.216071/2019-12-16T09:25:03.508605
0r
localhost:3011/status/%222019-12-15T09%3A19%3A57.216071%22%2F%222019-12-16T09%3A25%3A03.508605%22%0D%0A
仍然无法获取值Nodejs(express)将所有路由和查询参数解析为字符串。在您的例子中,2个参数是ISODate格式,但它们仍然是字符串。为了使聚合查询正常工作,需要将它们作为对象传递
您也可以签出。示例中的ISO日期字符串无效 例如: 给定日期时区中缺少“Z” “2019-12-15T09:19:57.216071” 不正确的ISO日期格式 新日期(“2019-12-15T09:19:57.216071”) 太阳2019年12月15日09:19:57 GMT+0530(印度标准时间) 有效/正确的ISO日期格式 新日期(“2019-12-15T09:19:57.216071Z”) 2019年12月15日星期日14:49:57 GMT+0530(印度标准时间)
您遇到了什么错误?错误:当web浏览器通过URL以字符串格式发送数据时,Node JS没有响应。您可以在此聚合之外记录req.params.id0吗?如果在aggreagte部分发生此错误,请将整个部分置于try/catch-and-get错误中
db.collection.aggregate([
{
$match: {
"time": {
"$gt": new Date(req.params.id0),
"$lt": new Date(req.params.id1)
}
}
},
...
])