Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.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 我如何将map reduce与MongoDB和JS结合使用来获得这个结果?_Javascript_Mongodb_Mapreduce - Fatal编程技术网

Javascript 我如何将map reduce与MongoDB和JS结合使用来获得这个结果?

Javascript 我如何将map reduce与MongoDB和JS结合使用来获得这个结果?,javascript,mongodb,mapreduce,Javascript,Mongodb,Mapreduce,我是JS的新手,所以我在mongodb中使用map reduce时遇到了一些大问题,因为我缺乏知识,我有一个名为dailyAlerts的集合: { "_id" : 25, "title" : "Other… Title Test Polygon 2", "alertDescription" : "Other… Description Test Polygon 2", "alertDateTime" : 1507784400100,

我是JS的新手,所以我在mongodb中使用map reduce时遇到了一些大问题,因为我缺乏知识,我有一个名为dailyAlerts的集合

{
        "_id" : 25,
        "title" : "Other… Title Test Polygon 2",
        "alertDescription" : "Other… Description Test Polygon 2",
        "alertDateTime" : 1507784400100,
        "alertLatitude" : 20.5774756,
        "alertLongitude" : -103.3795262,
        "alertType" : 9,
        "userName" : "Azgad",
        "photoLink" : "www.google.com",
        "videoLink" : "www.google.com",
        "__v" : 0
}{
        "_id" : 26,
        "title" : "Other… Title Test Polygon 4",
        "alertDescription" : "Other… Description Test Polygon 4",
        "alertDateTime" : 1507784400100,
        "alertLatitude" : 20.5774756,
        "alertLongitude" : -103.3795262,
        "alertType" : 5,
        "userName" : "Azgad",
        "photoLink" : "www.google.com",
        "videoLink" : "www.google.com",
        "__v" : 0
}   
{
        "_id" : 27,
        "title" : "Other… Title Test Polygon 6",
        "alertDescription" : "Other… Description Test Polygon 6",
        "alertDateTime" : 1507784400500,
        "alertLatitude" : 20.5774756,
        "alertLongitude" : -103.3795262,
        "alertType" : 1,
        "userName" : "Azgad",
        "photoLink" : "www.google.com",
        "videoLink" : "www.google.com",
        "__v" : 0
}
这里的重要字段是“alertType”,我想使用map reduce根据alertType(可用值为1-9)提供所有警报的计数,或者如果找不到该alertType的文档,则输入0,此外,我还需要显示为将其插入其他集合而处理的所有文档的总数,如下所示:

{
        "_id" : 4,
        "dateRecord" : 3500,
        "type1Count" : 0,
        "type2Count" : 10,
        "type3Count" : 20,
        "type4Count" : 30,
        "type5Count" : 0,
        "type6Count" : 50,
        "type7Count" : 60,
        "type8Count" : 70,
        "type9Count" : 80,
        "totalCount" : 320,
} 

非常感谢您的帮助。

我想您的问题不是关于所需输出中的前两个属性值。计数可通过
reduce
收集,如下所示:

{
        "_id" : 4,
        "dateRecord" : 3500,
        "type1Count" : 0,
        "type2Count" : 10,
        "type3Count" : 20,
        "type4Count" : 30,
        "type5Count" : 0,
        "type6Count" : 50,
        "type7Count" : 60,
        "type8Count" : 70,
        "type9Count" : 80,
        "totalCount" : 320,
} 
var data=[{“警报类型”:9},{“警报类型”:5},{“警报类型”:1}];
var计数=数据减少((计数,obj)=>{
计数[obj.alertType]+;
返回计数;
},数组(10)。填充(0);
控制台日志(计数)

.as console wrapper{max height:100%!important;top:0;}
所需输出的前两个属性指的是什么?\u id只是一个自动生成id,dateRecord是当前执行日期的最后一天(以毫秒为单位)(如果今天是10月14日,则应该是13日)但我想你的问题不是生成这两个值,对吧?我把一些东西改成了代码,但它只给了我一个满是零的数组,你知道为什么吗//变量数据=[{“alertType”:9},{“alertType”:5},{“alertType”:1}];var data=db.dailyalerts.find({},{u id:0,alertType:1}).toArray();var counts=data.reduce((counts,obj)=>{counts[obj.alertType]+;return counts;},数组(10.fill)(0));真糟糕!我忘了用了,现在可以用了,非常感谢!