Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 如何每15分钟获得一个包含mongodb字段值的数组_Javascript_Node.js_Mongodb_Mongoose_Aggregation Framework - Fatal编程技术网

Javascript 如何每15分钟获得一个包含mongodb字段值的数组

Javascript 如何每15分钟获得一个包含mongodb字段值的数组,javascript,node.js,mongodb,mongoose,aggregation-framework,Javascript,Node.js,Mongodb,Mongoose,Aggregation Framework,我正在从事node js mongodb项目,我有一个名为shop_infos的集合,其中包含以下文档: { "_id": ObjectId("80c0ba30f2ed8e3d886965c4") "shopId":ObjectId("5e9f0d3418c486041c6f5e8a") "isOpen": true, "created_at": 2021-06-09T09:0

我正在从事node js mongodb项目,我有一个名为shop_infos的集合,其中包含以下文档:

{
"_id": ObjectId("80c0ba30f2ed8e3d886965c4")
"shopId":ObjectId("5e9f0d3418c486041c6f5e8a")
"isOpen": true,
"created_at": 2021-06-09T09:00:12.458+00:00
"updated_at": 2021-06-09T09:00:12.458+00:00

}
{
"_id": ObjectId("80c0ba30f2ed8e3d886965c4")
"shopId":ObjectId("5e9f0d3418c486041c6f5e8a")
"isOpen": false,
"created_at": 2021-06-09T11:00:12.458+00:00
"updated_at": 2021-06-09T11:00:12.458+00:00
}
因此,每次店铺打开或关闭时,此集合都包含店铺信息(是否打开),并将一个包含shopId的文档插入到此集合中,该文档是否打开。 我想做的是在选定的一天中,每隔15分钟从9:00到12:00查看每个店铺的状态。我想得到的结果是

"shopId", "date", "09:00", "09:15", "09:30", "09:45", "10:00", "10:15","10:30", "10:45", "11:00", "11:15", "11:30", "11:45", "12:00"
 5e9f0d3418c486041c6f5e8a, 09/06/2021 ; true, true , true , true, true, true, true, true, false, false, false, false
 5e9f0d3418c486041c6f5efd, 09/06/2021 ; true, true , true , true, true, true, true, true, true, true , true , true   
因此,我选择的日期是2021年6月9日,我可以在$match query中执行,在数组的第一行中,商店有两个infos文档1-它在9:00打开2-它在11:00关闭,因此在9和11之间,字段isOpen每15分钟为真,然后从11到12为假 第二个例子是随机的,告诉你我也应该根据id对商店进行分组
我一直在尝试使用mongodb聚合来实现这一点,但我甚至还没有接近获得正确的结果,因此我开始怀疑聚合是否可以实现这一点,如果没有,我如何使用node js实现这一点?

根据您的要求,一个选项可以是:

  • 使用在应用程序中触发端点的cron作业()。端点将查询数据库,查看商店是否在该特定时间打开。Cron作业使您能够灵活地在一天中的特定时间间隔安排Cron作业,在您的情况下是9-2,并且还指定每15分钟触发一次
如果要聚合所有结果,则需要将所有单独的查询结果进一步存储在持久内存中,然后再进行聚合。

您可以使用cron作业根据提供的查询筛选器每隔n分钟查询一次集合。