code: @Override
    public Stream<ChangeEvent<DocumentT>> watch(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 watch(transformedIds);
    }
docs: Watches specified IDs in a collection.  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.