title: Remove objects from a stream which are already in a database in a reactive manner
body: <p>I'm scanning a directory for files, then processing the results. I want to remove files from the result of the scan that I already have in a datastore before further processing. </p>
  
  <p>Trying to do this in a reactive fashion, using reactive mongodb. I'm just unsure how to implement a filter in such a manner as to use the result of a database query. </p>
  
  <pre><code>@Override
  public Flux&lt;File&gt; findFiles(Directory directory) {
  
      // Only get these file types as we can't process anything else
      final Predicate&lt;Path&gt; extensions = path -&gt;
              path.toString().endsWith(".txt") ||
                      path.toString().endsWith(".doc") ||
                      path.toString().endsWith(".pdf");
  
      final Set&lt;File&gt; files = fileService.findAll(Paths.get(directory.getPath()), extensions);
  
      final Stream&lt;Video&gt; fileStream = files
              .stream()
              .map(this::convertFileToDocument)
  
              // This is wrong (doesn't compile for a start), but how do I do something similar or of this nature? 
              .filter(file -&gt; fileRepository.findById(file.getId()));
  
      return Flux.fromStream(fileStream);
  }
  </code></pre>
  
  <p><code>convertFileToDocument</code> just maps the file to a POJO, nothing fun happening there. </p>
  
  <p>How can I go about adding the filter based on the result of the <code>findById</code>, or is there a better way to achieve this? </p>