code: @Override
    public Stream<CompactChangeEvent<DocumentT>> watchCompact(final ObjectId... ids)
        throws InterruptedException, IOException {
      final BsonValue[] transformedIds = new BsonValue[ids.length];
  
      for (int i = 0; i < ids.length; i++) {
        transformedIds[i] = new BsonObjectId(ids[i]);
      }
  
      return watchCompact(transformedIds);
    }
docs: Watches specified IDs in a collection. Requests a stream where the full document of update
  events, and several other unnecessary fields are omitted from the change event objects
  returned by the server. This can save on network usage when watching large documents
  
  This convenience overload supports the use case
  of non-{@link BsonValue} instances of {@link ObjectId} by wrapping them in
  {@link BsonObjectId} instances for the user.
  
  @param ids unique object identifiers of the IDs to watch.
  @return the stream of change events.