[ 'root' => 'array', 'document' => 'array', 'array' => 'array', ], ] ); self::$db = $client->selectDatabase($db); } return self::$db; } private static function uri(): string { $uri = env('MONGO_URI'); if (is_string($uri) && $uri !== '') { return $uri; } $host = env('MONGO_HOST', 'harness-mongo'); $port = env('MONGO_PORT', '27017'); $user = (string) env('MONGO_USER', ''); $pass = (string) env('MONGO_PASS', ''); $auth = $user !== '' ? urlencode($user) . ':' . urlencode($pass) . '@' : ''; return "mongodb://{$auth}{$host}:{$port}/?authSource=admin"; } public static function collection(string $name): \MongoDB\Collection { return self::db()->selectCollection($name); } }