3v4l.org

run code in 300+ PHP versions simultaneously
<?php /*{ "_id" : ObjectId("595baefce2810a6a8a94fe2d"), "user" : "1234abc", "type" : "session-started", "name" : "moja o sesja", "reference_id" : "hippo-123", "created_on" : ISODate("2017-01-01T01:01:01.123Z") }*/ class A { private static $_id = 0x10a6a8a94fe2d; private $user; private $type; private $reference_id; private $created_on; public function __construct($user, $type, $reference_id, $created_on) { $this->user = $user; $this->type = $type; $this->reference_id = $reference_id; $this->created_on = $created_on; } public function __toString() { return sprintf('{ "_id": ObjectId("595baefce28%x"), "user": "%s", "type": "%s", "name": "my %s", "reference_id": "%s%s", "created_on": ISODate("%s.000Z") }', ++self::$_id, $this->user, $this->type, $this->type, $this->user, $this->reference_id ? 'hippo-' . $this->reference_id : '', $this->created_on ); } } $history = [ new A('u1', 'onboarded', '', '2017-01-01T01:01:01'), new A('u1', 'category_activated', 11, '2017-01-01T01:02:01'), new A('u1', 'category_started', 11, '2017-01-01T01:03:01'), new A('u1', 'series_started', 21, '2017-01-01T01:04:01'), new A('u1', 'session_started', 31, '2017-01-01T01:05:01'), new A('u1', 'session_progress_updated', 31, '2017-01-01T01:06:01'), new A('u1', 'session_completed', 31, '2017-01-01T01:07:01'), new A('u1', 'session_started', 32, '2017-01-01T01:08:01'), new A('u1', 'session_completed', 32, '2017-01-01T01:09:01'), // seesion completed (2/2) new A('u1', 'session_started', 33, '2017-01-02T01:10:01'), new A('u1', 'session_completed', 33, '2017-01-02T01:11:01'), // session completed (1/1) new A('u1', 'session_started', 34, '2017-01-03T01:12:01'), // session started (0/1) new A('u1', 'session_completed', 34, '2017-01-04T01:13:01'), // session completed (1/1) new A('u2', 'onboarded', '', '2017-01-01T01:01:01'), new A('u2', 'category_activated', 11, '2017-01-01T01:02:01'), new A('u2', 'category_started', 11, '2017-01-01T01:03:01'), new A('u2', 'series_started', 21, '2017-01-01T01:04:01'), new A('u2', 'session_started', 31, '2017-01-01T01:05:01'), new A('u2', 'session_progress_updated', 31, '2017-01-01T01:06:01'), new A('u2', 'session_completed', 31, '2017-01-01T01:07:01'), new A('u1', 'session_started', 35, '2017-01-05T01:14:01'), new A('u1', 'session_progress_updated', 35, '2017-01-05T01:15:01'), new A('u1', 'session_completed', 35, '2017-01-05T01:16:01'), new A('u1', 'session_started', 36, '2017-01-05T01:17:01'), // session started (1/2) new A('u1', 'session_skipped', 36, '2017-01-06T01:18:01'), // session skipped (0/1) new A('u1', 'session_started', 37, '2017-01-07T01:19:01'), new A('u1', 'session_completed', 37, '2017-01-07T01:20:01'), // session completed (1/1) //new A('u1', 'session_started', 34, '2017-01-09T01:21:01'), // day skipped new A('u1', 'session_started', 38, '2017-01-09T01:21:01'), new A('u1', 'session_completed', 38, '2017-01-09T01:21:01'), ]; echo 'db.activities.insertMany([' . implode(',', $history) . ']);';

preferences:
39.97 ms | 402 KiB | 5 Q