MongoDB `insert` 的 `watch` 不工作

MongoDB `watch` for `insert`s is not working

我看过一个集合,使用以下过滤器作为 com.mongodb.client.internal.MongoDatabaseImpl 对象的 watch 函数的过滤器:

(java.util.Arrays/asList
  (into-array
    [(com.mongodb.client.model.Aggregates/match
       (com.mongodb.client.model.Filters/and
         (java.util.Arrays/asList
           (into-array Object
                       [(com.mongodb.client.model.Filters/in "operationType"
                          (java.util.Arrays/asList
                            (into-array ["insert" "update" "delete" "replace"])))]))))]))

如您所见,我已经观察了所有操作类型的集合,但观察者仅获取 update 操作的更改,没有其他任何内容。

谁能指出我正确的方向?

此外,执行插入会导致观察线程挂起,并且还会阻止对集合的进一步观察,此时我必须重置我的 REPL 状态以使更新观察工作。

仅供参考,我使用的 org.mongodb/mongo-java-driver 版本是 "3.12.7"

原来这是一个不同的问题。当我可以监视插入时,我在 updateDescription 事件上调用 .getRemovedFields 方法,这在我的异步代码中引发了错误。