Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.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 两小时Mongodb聚合_Javascript_Python_Arrays_Mongodb_Pymongo 3.x - Fatal编程技术网

Javascript 两小时Mongodb聚合

Javascript 两小时Mongodb聚合,javascript,python,arrays,mongodb,pymongo-3.x,Javascript,Python,Arrays,Mongodb,Pymongo 3.x,以下是我的示例数据: { "_id": { "$oid": "5654a8f0d487dd1434571a6e" }, "ValidationDate": { "$date": "2015-11-24T13:06:19.363Z" }, "DataRaw": " WL 00100100012015-08-28 02:44:17+0000+ 16.81 8.879 1084.00", "ReadingsAreValid": true, "locationID": " WL

以下是我的示例数据:

{
"_id": {
    "$oid": "5654a8f0d487dd1434571a6e"
},

"ValidationDate": {
    "$date": "2015-11-24T13:06:19.363Z"
},

"DataRaw": " WL 00100100012015-08-28 02:44:17+0000+ 16.81 8.879  1084.00",

"ReadingsAreValid": true,

"locationID": " WL 001",

"Readings": {

    "pH": {
        "value": 8.879
    },

    "SensoreDate": {
        "value": {
            "$date": "2015-08-28T02:44:17.000Z"
        }
    },

    "temperature": {
        "value": 16.81
    },

    "Conductivity": {
        "value": 1084
    }
},
"HMAC":"ecb98d73fcb34ce2c5bbcc9c1265c8ca939f639d791a1de0f6275e2d0d71a801"
}

我试图按两小时的间隔对平均值进行分组,并进行以下聚合查询

Query = [{"$unwind":"$Readings"},                    
        {'$group' : { "_id": {
            "year": { "$year": "$Readings.SensoreDate.value" },
            "dayOfYear": { "$dayOfYear": "$Readings.SensoreDate.value" },
            "interval": {
                "$subtract": [ 
                    { "$hour": "$Readings.SensoreDate.value"},
                    { "$mod": [{ "$hour": "$Readings.SensoreDate.value"},2]}
                ]
            }
        }},
'AverageTemp' : { '$avg' : '$Readings.temperature.value'}, "AveragePH": {"$avg" : "$Readings.pH.value"}, "AverageConduc": {"$avg" : "$Readings.Conductivity.value"}}
, {"$limit":10}]
这给了我一个错误的说法
管道阶段规范对象必须只包含一个字段。
我已经做了所有的研究,但无法得到预期的结果。

经过一些格式化后,您当前的聚合管道如下所示:

Query = [
    { "$unwind": "$Readings" },                    
    {
        '$group' : { 
            "_id": {
                "year": { "$year": "$Readings.SensoreDate.value" },
                "dayOfYear": { "$dayOfYear": "$Readings.SensoreDate.value" },
                "interval": {
                    "$subtract": [ 
                        { "$hour": "$Readings.SensoreDate.value"},
                        { 
                            "$mod": [
                                { "$hour": "$Readings.SensoreDate.value" },
                                2
                            ]
                        }
                    ]
                }
            }
        },
        'AverageTemp' : { '$avg' : '$Readings.temperature.value' }, 
        "AveragePH": { "$avg" : "$Readings.pH.value" }, 
        "AverageConduc": { "$avg" : "$Readings.Conductivity.value" }
    }, 
    { "$limit": 10 }
]
mongo在抱怨什么

管道阶段规范对象必须仅包含一个字段

因为它无法识别错放的字段

'AverageTemp' : { '$avg' : '$Readings.temperature.value' }, 
"AveragePH": { "$avg" : "$Readings.pH.value" }, 
"AverageConduc": { "$avg" : "$Readings.Conductivity.value" }
正确的管道应在
$group
管道阶段中包含这些字段,因此工作管道如下所示:

Query = [
    { "$unwind": "$Readings" },                    
    {
        "$group" : { 
            "_id": {
                "year": { "$year": "$Readings.SensoreDate.value" },
                "dayOfYear": { "$dayOfYear": "$Readings.SensoreDate.value" },
                "interval": {
                    "$subtract": [ 
                        { "$hour": "$Readings.SensoreDate.value"},
                        { 
                            "$mod": [
                                { "$hour": "$Readings.SensoreDate.value" },
                                2
                            ]
                        }
                    ]
                }
            },
            "AverageTemp" : { "$avg" : "$Readings.temperature.value" }, 
            "AveragePH": { "$avg" : "$Readings.pH.value" }, 
            "AverageConduc": { "$avg" : "$Readings.Conductivity.value" }
        }       
    }, 
    { "$limit": 10 }
]