Рубрики
Без рубрики

Свободное владение запросами MongoDB с Java

MongoDB отлично справляется, прочно удерживая престижное 5-е место на сайте рейтинга db-двигателей. Это означает, что… Помеченный как производительность, mongodb, java.

MongoDB отлично справляется, прочно удерживая престижное 5-е место на сайте рейтинга db-двигателей. Это означает, что мы, разработчики, часто им пользуемся.

При просмотре официального API драйвера мы видим попытку сделать API как можно более плавным:

collection.find(and(gte("stars", 2), lt("stars", 5), eq("categories", "Bakery")));

Тем не менее, есть много проблем:

  • Все поля являются строками без автоматического заполнения.
  • Нет безопасности типов для операторов (является ли звезды числом?! Является ли категории набором (?!) строк или…?!).
  • Действительно ли нам нравится использовать get для >= ?! Я имею в виду, легко ли читать и понимать это выражение?
  • И, наконец, когда схема меняется, мы возвращаемся к 80′ с помощью find-replace…

Существует простое и эффективное решение этих проблем — FluentMongo , которое добавляет недостающий компонент в безопасность API—типа и интеграцию Java. Это позволяет вам использовать обычную Java для написания фильтров, прогнозов, обновлений, сортировок и индексов. Например:

collection.find(builder.filter(r -> r.getStars() >= 2 && r.getStars() < 5 &&
                                    r.getCategories().contains("Bakery")));

Вы можете быть одновременно продуктивным с MongoDB и писать поддерживаемый код прямо сейчас!

Оригинал: “https://dev.to/kostat/fluent-mongodb-queries-from-java-4okm”