class_docstr: Wrap MongoDB with three primary methods `read`, `write`, `remove`.
  
  Attributes
  ----------
  host : str
     Hostname or MongoDB compliant full credentials+address+database
     specification.
  
  Information on MongoDB `connection string
  <https://docs.mongodb.com/manual/reference/connection-string/>`_.
  
  .. seealso:: :class:`orion.core.io.database.Database` for more on attributes.
docstr: Connect to database, unless MongoDB `is_connected`.
  
  :raises :exc:`orion.core.io.database.DatabaseError`: if connection or authentication fails
docstr_tok: ["Connect","to","database",",","unless","MongoDB","`","is_connected","`",".",":","raises",":","exc",":","`","orion.core.io.database.DatabaseError","`",":","if","connection","or","authentication","fails"]
code: def initiate_connection(self):
      """Connect to database, unless MongoDB `is_connected`.
  
      :raises :exc:`orion.core.io.database.DatabaseError`: if connection or authentication fails
  
      """
      if self.is_connected:
          return
  
      self._sanitize_attrs()
  
      self._conn = pymongo.MongoClient(
          self.uri if self.uri else self.host,
          port=self.port,
          username=self.username,
          password=self.password,
          **self.options,
      )
      self._db = self._conn[self.name]
      self._db.command("ismaster")
  
imports: import functools
  import pymongo
  from orion.core.io.database import Database, DatabaseError, DatabaseTimeout, DuplicateKeyError
label_desc: Use image node_id 5 for calling the MongoDB obj's underlying member method code with example usage: obj.initiate_connection() without return types