Прекратить просмотр потока изменений MongoDB с помощью драйвера Java

#java #mongodb

#java #mongodb

Вопрос:

Драйвер MongoDB Java четко объясняет, как просматривать коллекцию и запускать / открывать поток изменений, который является ChangeStreamIterable:

http://mongodb.github.io/mongo-java-driver/3.9/driver/tutorials/change-streams/

 MongoClient mongoClient = MongoClients.create(new ConnectionString("mongodb://localhost:27017,localhost:27018,localhost:27019"));
MongoDatabase database = mongoClient.getDatabase("test");
MongoCollection<Document> collection = database.getCollection("restaurants");

collection.watch().forEach(printBlock);
  

Но нет никаких объяснений по закрытию потока изменений, и API, похоже, не поддерживает операцию закрытия.

Почему это невозможно? Это не обязательно или просто оплошность?

Применяется ко всем версиям стандартных, асинхронных и реактивных драйверов.

Комментарии:

1. Привет, Филипп, ты нашел какое-нибудь решение этой проблемы? Я в такой же ситуации.

2. Привет @sixro, вам просто нужно закрыть подключение к базе данных.

Ответ №1:

Вы можете получить закрываемый курсор из ChangeStreamIterable.

 MongoCursor<ChangeStreamDocument<Document>> cursor = collection.watch().iterator();
cursor.close();