我想要从collection_one,collection_two,collection_three等收集数据,我该怎么做?
ChangeStreamRequest request = ChangeStreamRequest.builder().collation(Collation.of("collection_one"))
.filter(Aggregation.newAggregation(match(where("operationType").exists(true))))
.publishTo(krakenDtoMessageListener)
.build();
container.register(request, CollectionOne.class);
我应该创建多个changeStreamRequest还是应该可以?
答案 0 :(得分:0)
无法监视多个集合。根据mongoDB文档,有3个选项。观看特定集合,观看数据库或观看部署(所有数据库)refer mongo documentation,了解更多详细信息
答案 1 :(得分:0)
在配置变更流时,您可以在集合上指定过滤器。
检查下面的Java代码,
List<Bson> pipeline = singletonList(Aggregates.match(
Filters.in("ns.coll", asList("coll1", "coll2", "coll3"))
));
MongoCursor<ChangeStreamDocument<Document>> cursor = db.watch(pipeline).fullDocument(FullDocument.UPDATE_LOOKUP).iterator();
您可以使用spring框架编写类似的管道。