private <E> Publisher<E> publishExplain(
            final Class<E> explainResultClass,
            @Nullable final ExplainVerbosity verbosity) {
        notNull("explainDocumentClass", explainResultClass);
        return getMongoOperationPublisher().createReadOperationMono(getTimeoutSettings(),
                () -> asAsyncReadOperation(0).asAsyncExplainableOperation(verbosity,
                        getCodecRegistry().get(explainResultClass)),
                getClientSession());
    }
@author James Chen
@implNote The heavy objects that we have eliminated: 1. {@link FindOptions} and
          {@link FindOperation} 3. A lot of intermediate operations 4. A lot of intermediate
          objects (especially documents)
@see FindPublisherImpl
turms-server-common/src/main/java/com/mongodb/reactivestreams/client/internal/TurmsFindPublisherImpl.java