#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();