我正在尝试使用 MongoDB java SDK 在集合名称上使用管道过滤器设置部署级别更改流。这是代码片段。
List<Bson> pipeline = Collections.singletonList(Aggregates.match(Filters.or(
Filters.eq("namespace", "db1.c1"),
Filters.eq("namespace", "db1.c2"))));
client.watch(pipeline)
.cursor()
.forEachRemaining(doc -> {
System.out.println(doc);
});
但是这个查询不匹配任何文档。以下管道文档的变体也不起作用。
List<Bson> pipeline =
Collections.singletonList(Aggregates.match(Filters.or(
Document.parse("{'namespace': 'db1.c1'}"),
Document.parse("{'namespace': 'db1.c2'}"))));
令人惊讶的是,管道适用于变更流文档的其他领域。例如,这有效:
List<Bson> pipeline = Collections
.singletonList(Aggregates.match(Filters.and(
Document.parse("{'fullDocument.seq': 4}"),
Filters.in("operationType", Arrays.asList("insert")))));
我不确定为什么会这样。我将不胜感激在这方面的任何帮助。