I am new in MongoDB. I have created query in MongoDB using PHP. My query is as follows:
$date_start = new MongoDate(strtotime("2016-06-08T18:30:00.000Z"));
$default_date = new MongoDate(strtotime("1970-01-01T00:00:00.000Z"));
$pipeline = array(
array('$project' => array(
'MainsPower' => 1,
'EventTS' => 1
)),
array('$unwind' => array(
'path' => '$MainsPower',
'includeArrayIndex' => "arrayIndex",
'preserveNullAndEmptyArrays' => true
)),
array('$match' => array(
'$and' => array(
//array('EventTS' => array('$gt' => $date_start)),
//array('PanelID' => 'A00911'),
array("MainsPower" => array('$ne' => null))
)
)),
array(
'$project' => array(
'MainsPower' => 1,
'_id' => 0,
'EventTS' => array(
'$add' => array(
array('$subtract' => array('$EventTS', $default_date)),
array('$multiply' => array(60000, '$arrayIndex'))
)
)
)
),
);
$result = $collection - > aggregate($pipeline);
Output of query is as below
Array
(
[0] => Array(
[EventTS] => 1497033900000[MainsPower] => 204
)
[1] => Array(
[EventTS] => 1497034800000[MainsPower] => 204
)
[2] => Array(
[EventTS] => 1497035700000[MainsPower] => 204
)
)
But, I want output as below because while plotting graph I need data in below format I searched many solution and I tried to apply the same but failed to get records in required format
Array
(
[0] => Array(
[1497033900000, 204]
)
[1] => Array(
[1497034800000, 204]
)
[2] => Array(
[1497035700000, 204]
)
)
</div>
Use the below code:
$formattedResponse = array();
foreach($mongoOutput as $out){
$formattedResponse[] = array($out["EventTS"],$out["MainsPower"]);
}
Please change variable names as per your needs.