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
方法,这在我的异步代码中引发了错误。
我看过一个集合,使用以下过滤器作为 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
方法,这在我的异步代码中引发了错误。