code: def _decode_all_selective(data, codec_options, fields):
      
      if not codec_options.type_registry._decoder_map:
          return decode_all(data, codec_options)
  
      if not fields:
          return decode_all(data, codec_options.with_options(type_registry=None))
  
      # Decode documents for internal use.
      from bson.raw_bson import RawBSONDocument
      internal_codec_options = codec_options.with_options(
          document_class=RawBSONDocument, type_registry=None)
      _doc = _bson_to_dict(data, internal_codec_options)
      return [_decode_selective(_doc, fields, codec_options,)]
docs: Decode BSON data to a single document while using user-provided
      custom decoding logic.
  
      `data` must be a string representing a valid, BSON-encoded document.
  
      :Parameters:
        - `data`: BSON data
        - `codec_options`: An instance of
          :class:`~bson.codec_options.CodecOptions` with user-specified type
          decoders. If no decoders are found, this method is the same as
          ``decode_all``.
        - `fields`: Map of document namespaces where data that needs
          to be custom decoded lives or None. For example, to custom decode a
          list of objects in 'field1.subfield1', the specified value should be
          ``{'field1': {'subfield1': 1}}``. If ``fields``  is an empty map or
          None, this method is the same as ``decode_all``.
  
      :Returns:
        - `document_list`: Single-member list containing the decoded document.
  
      .. versionadded:: 3.8