code: def __init__(self, config):
      mongodb_config = config["api"].get("mongodb")
      assert mongodb_config is not None, "is no mongodb config!"
      host = mongodb_config["host"]
      port = mongodb_config["port"]
      logger.debug(f"start mongo server on {host}:{port}")
  
      super().__init__((host, int(port)), MongoRequestHandler)
  
      self.mindsdb_env = {
          "config": config,
          "model_controller": ModelController(),
          "integration_controller": integration_controller,
          "project_controller": ProjectController(),
          "database_controller": DatabaseController(),
      }
  
      respondersCollection = RespondersCollection()
  
      opQueryResponder = OpQueryResponder(respondersCollection)
      opMsgResponder = OpMsgResponder(respondersCollection)
      opInsertResponder = OpInsertResponder(respondersCollection)
  
      self.operationsHandlersMap = {
          OP_QUERY: opQueryResponder,
          OP_MSG: opMsgResponder,
          OP_INSERT: opInsertResponder,
      }
  
      respondersCollection.add(
          when={"drop": "system.sessions"}, result={"ok": 1}
      )
      respondersCollection.add(
          when={"update": "system.version"}, result={"ok": 1}
      )
      respondersCollection.add(
          when={"setFeatureCompatibilityVersion": helpers.is_true},
          result={"ok": 1},
      )
      # OpMSG=OrderedDict([('features', 1), ('$clusterTime', OrderedDict([('clusterTime', Timestamp(1599748325, 1)), ('signature', OrderedDict([('hash', b'\xb8\xc3\x03\x18\xca\xe6bh\xf0\xcb47,\x924\x8a >\xfc\x91'), ('keyId', 6870854312365391875)]))])), ('$configServerState', OrderedDict([('opTime', OrderedDict([('ts', Timestamp(1599748325, 1)), ('t', 1)]))])), ('$db', 'admin')])
      respondersCollection.add(
          when={"features": helpers.is_true}, result={"ok": 1}
      )
      # OpMSG=OrderedDict([('serverStatus', 1), ('$clusterTime', OrderedDict([('clusterTime', Timestamp(1599748366, 1)), ('signature', OrderedDict([('hash', b'\xa1E}\xbbIU\xc2D\x95++\x82\x88\xb5\x84\xf5\xda)+B'), ('keyId', 6870854312365391875)]))])), ('$configServerState', OrderedDict([('opTime', OrderedDict([('ts', Timestamp(1599748366, 1)), ('t', 1)]))])), ('$db', 'admin')])
      respondersCollection.add(
          when={"serverStatus": helpers.is_true}, result={"ok": 1}
      )
      # OpMSG=OrderedDict([('ismaster', 1), ('$db', 'admin'), ('$clusterTime', OrderedDict([('clusterTime', Timestamp(1599749031, 1)), ('signature', OrderedDict([('hash', b'6\x87\xd5Y\xa7\xc7\xcf$\xab\x1e\xa2{\xe5B\xe5\x99\xdbl\x8d\xf4'), ('keyId', 6870854312365391875)]))])), ('$client', OrderedDict([('application', OrderedDict([('name', 'MongoDB Shell')])), ('driver', OrderedDict([('name', 'MongoDB Internal Client'), ('version', '3.6.3')])), ('os', OrderedDict([('type', 'Linux'), ('name', 'Ubuntu'), ('architecture', 'x86_64'), ('version', '18.04')])), ('mongos', OrderedDict([('host', 'maxs-comp:27103'), ('client', '127.0.0.1:52148'), ('version', '3.6.3')]))])), ('$configServerState', OrderedDict([('opTime', OrderedDict([('ts', Timestamp(1599749031, 1)), ('t', 1)]))]))])
  
      from mindsdb.api.mongo.responders import responders
  
      respondersCollection.responders += responders
  
imports: import socketserver
  import socket
  import struct
  import bson
  import traceback
  from bson import codec_options
  from collections import OrderedDict
  from abc import abstractmethod
  from bson.codec_options import CodecOptions
  from bson.codec_options import TypeCodec
  from bson.codec_options import TypeRegistry
  import numpy
  import datetime
  import mindsdb.api.mongo.functions
  from mindsdb.api.mongo.classes import RespondersCollection, Session
  from mindsdb.interfaces.storage import db
  from mindsdb.interfaces.model.model_controller import ModelController
  from mindsdb.interfaces.database.integrations import integration_controller
  from mindsdb.interfaces.database.projects import ProjectController
  from mindsdb.interfaces.database.database import DatabaseController
  from mindsdb.utilities.context import context
  from mindsdb.utilities import log
label_desc: Use image node_id 1 to create a new MongoServer object from inherited base classes: SocketServer, SocketServer with example: obj = MongoServer(config)