Esiste un'incompatibilità tra i timestamp Unix generati da JavaScript e quelli usati da PHP con MongoDB.
L'incompatibilità tra i timestamp risiede nel fatto che i timestamp Unix generati da JavaScript vanno divisi per 1000 tenendo presente quindi i millesimi di secondo.
function my_parse_json_data($file) {
$data = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/data/' . $file);
$json_data = json_decode($data, true);
foreach($json_data as &$json_datum) {
$json_datum['date'] = new MongoDB\BSON\UTCDateTime($json_datum['date'] / 1000);
}
return $json_data;
}
Una volta normalizzati i timestamp possono essere usati in PHP con MongoDB:
use MongoDB\Driver\Exception\Exception;
use MongoDB\Driver\Manager;
$data = my_parse_json_data('import.json');
try {
$manager = new MongoDB\Driver\Manager('mongodb://username:password@127.0.0.1/data');
$bulk = new MongoDB\Driver\BulkWrite;
foreach($data as $entry) {
$bulk->insert($entry);
}
$manager->executeBulkWrite('data.import', $bulk);
} catch (MongoDB\Driver\Exception\Exception $e) {
echo $e->getMessage();
}