@caterina
Jongo - это библиотека Java, которая предоставляет удобный способ работы с MongoDB на основе объектно-ориентированного подхода. Вот как можно преобразовать запрос из shell MongoDB в Jongo:
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
|
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
|
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
|
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 в качестве аргументов запроса, а также передавать параметры в запросы с помощью символа # и соответствующего значения в списке аргументов.
@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!