Получить все данные о сборе от mongodb без определения bean в Springboot JPA - PullRequest
0 голосов
/ 06 марта 2020

Поля Beacause внутри коллекции mon go - это изменение объекта на объект. в объекте есть 4 поля, в другом есть 8 полей, так как мы получаем все данные коллекции.

Ответы [ 2 ]

0 голосов
/ 07 марта 2020

Вы можете использовать методы 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}}
0 голосов
/ 06 марта 2020

такие документы можно получить без репозитория jpa

import static org.springframework.data.mongodb.core.aggregation.Aggregation.match;
import static org.springframework.data.mongodb.core.aggregation.Aggregation.newAggregation;
import static org.springframework.data.mongodb.core.aggregation.Aggregation.project;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.web.bind.annotation.GetMapping;

    @Autowired
    MongoTemplate mongoTemplate;

    @GetMapping("/url")
    public List<JSONObject> getList() {

    ProjectionOperation project = project().andExclude("_id");


    Aggregation aggregate = newAggregation(project);
    AggregationResults<JSONObject> aggregationResult = mongoTemplate.aggregate(aggregate,"youCollectionName", JSONObject.class);
    List<JSONObject> result = aggregationResult.getMappedResults();

      return result;

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...