public static function connect($replica_set = false)
 {
     try {
         MongoConnection::$mongo_connection = new Mongo("mongodb://" . MongoConfiguration::username . ":" . MongoConfiguration::password . "@" . MongoConfiguration::hosts . ":" . MongoConfiguration::port . "/" . MongoConfiguration::database, array("timeout" => 10000, "replicaSet" => $replica_set));
     } catch (Exception $mongoException) {
         //Output error details
         Error::halt(503, 'service unavailable', 'Temporarily unable to process request. Failed to establish a connection with MongoDB. Please retry.');
     }
     if (empty(MongoConnection::$mongo_connection)) {
         Error::halt(503, 'service unavailable', 'Temporarily unable to process request. Failed to establish a connection with MongoDB. Please retry.');
     }
     try {
         MongoConnection::$mongo_db = MongoConnection::$mongo_connection->selectDB(MongoConfiguration::database);
     } catch (Exception $mongoException) {
         //Output error details
         Error::halt(503, 'service unavailable', 'Temporarily unable to process request. Failed to select the database from MongoDB. Please retry.');
     }
     if (empty(MongoConnection::$mongo_db)) {
         //Output error details
         Error::halt(503, 'service unavailable', 'Temporarily unable to process request. Failed to select the database from MongoDB. Please retry.');
     }
 }