Чтобы скопировать коллекцию mongo в соответствующий объект java

У меня есть java-код, в котором мне нужно довольно часто ссылаться на коллекцию mongo, что занимает много времени. У меня нет проблем с наличием больших объектов в куче. Итак, в основном я хочу скопировать всю эту коллекцию в соответствующий объект в java, на который я могу ссылаться при поиске полей.

1) Можно ли скопировать все документы в этой коллекции в JsonArray / List за один раз без повторения документов?

2) Могу ли я выполнять совокупный поиск в JSONArray, чтобы найти соответствующие документы, как мы делаем запросы, а затем выполняем операцию поиска?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
76
1

Ответы 1

1) Можно ли скопировать все документы в этой коллекции в JsonArray / List за один раз без повторения документов?

А: Если вы хотите найти все документы JavaDocumentName (любое имя коллекции в java)

List<JavaDocumentName> listRes = mongoOperation.findAll(JavaDocumentName.class);

2) Могу ли я выполнять совокупный поиск в JSONArray, чтобы найти соответствующие документы, как мы делаем запросы, а затем выполняем операцию поиска?

Query searchQuery = new Query(Criteria.where("name").is("Parth"));
List<JavaDocumentName> listRes = mongoOperations.find(searchQuery, JavaDocumentName.class);

Пример:

@Document (collection = "Клиент") public class Customer {

}

Список listRes = mongoOperation.findAll (Customer.class);

Если вам нужен JSON, тогда метод контроллера создаст для вас JSON в конце, как указано ниже,

@RequestMapping(value = "/customers", method = RequestMethod.GETG,
  produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(value = HttpStatus.OK)
 public Customer getCustomer{

 }

============================

Еще один способ сделать это

Вы можете использовать CollectionCallback для непосредственной работы с возвращенным DBObject и просто toString () его:

template.execute("jvmInfo", new CollectionCallback<String>() {
  String doInCollection(DBCollection collection) {
    DBCursor cursor = collection.find(query)
   return cursor.next().toString()
 }
 } 
 String result = mongoTemplate.findOne(basicQuery, String.class, "jvmInfo");

Извините, я не смог этого понять. Под "JavaDocumentName" вы имеете в виду фактическую коллекцию в базе данных или массиве jsonarray, в который копируются все данные? Кроме того, не могли бы вы дать мне фрагмент того, как скопировать коллекцию базы данных в jsonArray? Кроме того, как только у меня будет готов массив, я хочу выполнять все запросы к самому массиву.

Indranil 31.10.2018 09:38

@Document (collection = "Customer") открытый класс Customer {} List <Customer> listRes = mongoOperation.findAll (Customer.class);

Parth Lukhi 31.10.2018 09:42

Разве я не могу просто сохранить его в массиве JSON вместо создания собственного класса?

Indranil 31.10.2018 09:44

В конце вы получите сам массив JSON, когда этот метод вызывается из клиента-почтальона или любого внешнего клиента. @RequestMapping (value = "/ customers", method = RequestMethod.GETG, производит = MediaType.APPLICATION_JSON_VALUE) @ResponseStatus (value = HttpStatus.OK) public Customer getCustomer {}

Parth Lukhi 31.10.2018 09:54

Другие вопросы по теме