code: def unpack_response(self, cursor_id=None,
                          codec_options=_UNICODE_REPLACE_CODEC_OPTIONS,
                          user_fields=None, legacy_response=False):
          
          self.raw_response(cursor_id)
          if legacy_response:
              return bson.decode_all(self.documents, codec_options)
          return bson._decode_all_selective(
              self.documents, codec_options, user_fields)
docs: Unpack a response from the database and decode the BSON document(s).
  
          Check the response for errors and unpack, returning a dictionary
          containing the response data.
  
          Can raise CursorNotFound, NotMasterError, ExecutionTimeout, or
          OperationFailure.
  
          :Parameters:
            - `cursor_id` (optional): cursor_id we sent to get this response -
              used for raising an informative exception when we get cursor id not
              valid at server response
            - `codec_options` (optional): an instance of
              :class:`~bson.codec_options.CodecOptions`