Я начал работать с потоками изменений MongoDB и настроил несколько потоков для отслеживания изменений в около 30 базах данных. Мне нужно посмотреть только две коллекции, и мне было интересно, могу ли я написать какой-нибудь канал или фильтр, чтобы посмотреть коллекции с указанным именем или частью имени. Например, я получаю имя коллекции из namespaceDocument в ChangeStreamDocument, и я хочу посмотреть коллекции, которые, например, равны «проигрывателям», во всех базах данных. Я наблюдаю за изменениями на всем сервере, но теперь я получаю уведомление окаждая коллекция, которая изменена, и я не хочу этого, только определенные коллекции.
final ChangeStreamPublisher<Document> publisher = client.watch(Arrays.asList(
Aggregates.match(
Filters.in("operationType", Arrays.asList("insert", "update", "delete"))
))).fullDocument(FullDocument.UPDATE_LOOKUP);
Я думал, смогу ли я установить там какой-то фильтр, чтобы поток смотрел только коллекции с соответствующими именами.
Документация: https://docs.mongodb.com/manual/changeStreams/