Вы можете использовать методы API MongoDB Spring Data MongoTemplate , как показано ниже.
The MongoTemplate
Можно использовать метод класса findAll
класса. Метод требует, чтобы был указан entityClass. Если класс сущности не определен, можно указать обобщенный класс c org.bson.Document (см. Пример кода ниже).
public <T> List<T> `findAll`(Class<T> entityClass, String collectionName)
Запросить список объектов типа T из указанной коллекции.
Объект конвертируется из собственного представления MongoDB с использованием экземпляра MongoConverter. Если не настроено иначе, будет использован экземпляр MappingMongoConverter. Если ваша коллекция не содержит однородную коллекцию типов, эта операция не будет эффективным способом сопоставления объектов, поскольку тест на тип класса выполняется на клиенте, а не на сервере.
Пример :
MongoOperations mongoOps = new MongoTemplate(MongoClients.create(), "test");
List<Document> list = mongoOps.findAll(Document.class, "person");
list.forEach(doc -> System.out.println(doc.toJson()));
В вышеприведенном коде читается person
collection; а в коллекции есть документы с разными полями. Для входных документов:
{ "_id" : 1, "fld" : "str-1" }
{ "_id" : 3, "fld" : "str-3", "fld2" : 13 }
{ "_id" : 10, "dt" : ISODate("2020-03-07T03:08:49.855Z") }
Вывод:
{"_id": 1.0, "fld": "str-1"}
{"_id": 3.0, "fld": "str-3", "fld2": 13.0}
{"_id": 10.0, "dt": {"$date": 1583550529855}}