在单个Java程序中打开多个mongodb changestream

时间:2018-12-10 15:15:12

标签: mongodb mongo-java-driver changestream

我需要在两个单独的mongodb(属于同一集群的一部分)上具有两个changestream,但是我看到的是watch()阻止了调用。 watch()之后的任何指令都不会执行。如何在同一代码流中再打开一个变更流? 我有示例代码

MongoClientURI uri = new MongoClientURI("mongodb://localhost:27017");
    MongoClient mclient = new MongoClient(uri);
    final MongoDatabase db = mclient.getDatabase("testdb");
    MongoCollection<Document> infoCollection = db.getCollection("info");

    Consumer<ChangeStreamDocument<Document>> fetchchange = t -> {
      assert t.getFullDocument() != null;
      System.out.println("forEach anonymous class Value::" + t.getFullDocument().get("docu_id"));
    };

    infoCollection.watch().fullDocument(FullDocument.UPDATE_LOOKUP).forEach(fetchchange);

我读到有一种叫做“反应性驱​​动程序”(异步驱动程序)的东西。这是解决这个问题的方法吗? 任何例子都会很有帮助

0 个答案:

没有答案