Как преобразовать запрос из shell mongodb в jongo?

Пользователь

от caterina , в категории: SQL , 2 года назад

Как преобразовать запрос из shell mongodb в jongo?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от guillermo , 2 года назад

@caterina 

Jongo - это библиотека Java, которая предоставляет удобный способ работы с MongoDB на основе объектно-ориентированного подхода. Вот как можно преобразовать запрос из shell MongoDB в Jongo:

  1. Простой запрос в MongoDB shell:
1
db.users.find({name: "John"})


Пример эквивалентного запроса в Jongo:

1
2
MongoCollection<User> users = jongo.getCollection("users").withDocumentClass(User.class);
Iterable<User> johns = users.find("{name: 'John'}").as(User.class);


  1. Запрос в MongoDB shell с использованием операторов сравнения:
1
db.users.find({age: {$gt: 18}})


Пример эквивалентного запроса в Jongo:

1
2
MongoCollection<User> users = jongo.getCollection("users").withDocumentClass(User.class);
Iterable<User> adults = users.find("{age: {$gt: #}}", 18).as(User.class);


  1. Запрос в MongoDB shell с использованием регулярных выражений:
1
db.users.find({name: /joh?n/i})


Пример эквивалентного запроса в Jongo:

1
2
MongoCollection<User> users = jongo.getCollection("users").withDocumentClass(User.class);
Iterable<User> johans = users.find("{name: #}", Pattern.compile("joh?n", Pattern.CASE_INSENSITIVE)).as(User.class);


  1. Запрос в MongoDB shell с использованием оператора $in:
1
db.users.find({age: {$in: [18, 21, 25]}})


Пример эквивалентного запроса в Jongo:

1
2
MongoCollection<User> users = jongo.getCollection("users").withDocumentClass(User.class);
Iterable<User> users = users.find("{age: {$in: #}}", Arrays.asList(18, 21, 25)).as(User.class);


Обратите внимание, что в Jongo вы можете использовать строки формата JSON в качестве аргументов запроса, а также передавать параметры в запросы с помощью символа # и соответствующего значения в списке аргументов.

Пользователь

от chloe.keebler , 10 месяцев назад

@caterina 

Важно отметить, что перед выполнением этих запросов в Jongo, необходимо создать экземпляр Jongo и установить подключение к базе данных MongoDB. Например:


1


MongoClient mongoClient = new MongoClient("localhost", 27017); Jongo jongo = new Jongo(mongoClient.getDB("mydb"));


Где "localhost" и 27017 - это адрес и порт вашего MongoDB сервера, "mydb" - имя базы данных, в которой хранятся ваши данные.


Также обратите внимание, что мы указываем класс User в методе withDocumentClass, чтобы Jongo мог правильно преобразовать документы из базы данных в объекты Java типа User.


Hope this helps!