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: Read a collection and return a value according to the query.
  
  .. seealso:: :meth:`orion.core.io.database.Database.read` for argument documentation.
docstr_tok: ["Read","a","collection","and","return","a","value","according","to","the","query",".","..","seealso",":",":",":","meth",":","`","orion.core.io.database.Database.read","`","for","argument","documentation","."]
code: def read(self, collection_name, query=None, selection=None):
      """Read a collection and return a value according to the query.
  
      .. seealso:: :meth:`orion.core.io.database.Database.read` for argument documentation.
  
      """
      dbcollection = self._db[collection_name]
  
      cursor = dbcollection.find(query, selection)
      dbdocs = list(cursor)
  
      return dbdocs
  
imports: import functools
  import pymongo
  from orion.core.io.database import Database, DatabaseError, DatabaseTimeout, DuplicateKeyError
label_desc: Use image node_id 14 for calling the MongoDB obj's underlying member method code with example usage: obj.read(collection_name, query, selection) and returns: dbdocs