Примечания к выпуску доступны здесь.
Справочную информацию и документацию по API для драйвера Java можно найти здесь.
Справочную документацию и документацию по API для драйвера Kotlin можно найти здесь.
Справочную документацию и документацию по API для драйвера Scala можно найти здесь.
Учебные пособия по использованию драйверов JVM MongoDB можно найти в Университете MongoDB. Дополнительные руководства, видеоролики и примеры кода с использованием драйвера Java и драйвера Kotlin также можно найти в Центре разработчиков MongoDB.
По вопросам, вопросам или отзывам о драйверах MongoDB Java, Kotlin и Scala обращайтесь в наши каналы поддержки. Пожалуйста, не пишите напрямую разработчикам драйверов по электронной почте с проблемами или вопросами — вы, скорее всего, получите ответ на форумах сообщества MongoDB или StackOverflow.
Как минимум, укажите в описании точную версию драйвера, который вы используете. Если у вас возникли проблемы с подключением, часто бывает полезно вставить строку кода, в которой вы создаете экземпляр MongoClient, вместе со значениями всех параметров, которые вы передаете конструктору. Вам также следует проверить журналы приложений на наличие исключений, связанных с подключением, и опубликовать их.
Думаете, вы нашли ошибку в драйверах Java, Kotlin или Scala? Хотите увидеть новую функцию в драйверах? Пожалуйста, откройте обращение в нашем инструменте управления проблемами JIRA:
Отчеты об ошибках в JIRA для драйвера и проекта Core Server (т. е. SERVER) являются общедоступными .
Если вы обнаружили уязвимость безопасности в драйвере или любом другом проекте MongoDB, сообщите об этом, следуя инструкциям здесь.
Основные изменения (например, 4.x -> 5.x) будут происходить при внесении критических изменений в общедоступный API. Все методы и классы, удаленные в основном выпуске, будут объявлены устаревшими в предыдущем выпуске предыдущей основной ветки выпуска и/или иным образом упомянуты в примечаниях к выпуску.
Незначительные приращения версии 5.x (например, 5.1, 5.2 и т. д.) будут происходить, когда добавляются нетривиальные новые функции или происходят значительные улучшения или исправления ошибок, которые могут иметь изменения в поведении, которые могут повлиять на некоторые крайние случаи (например, зависимость от поведения, возникающего в результате ошибка). Примером улучшения является метод или класс, добавленный для поддержки новых функций, добавленных на сервер MongoDB. Второстепенные выпуски почти всегда будут двоично совместимы с предыдущими второстепенными выпусками из той же основной ветки выпуска, за исключением случаев, отмеченных ниже.
Приращения патча 5.xy (например, 5.0.0 -> 5.0.1, 5.1.1 -> 5.1.2 и т. д.) будут происходить только для исправления ошибок и всегда будут двоично совместимы с предыдущими выпусками исправлений той же второстепенной ветки выпуска. .
API, отмеченные аннотацией @Alpha
, находятся на ранних стадиях разработки, могут быть несовместимы с изменениями или даже удалены в будущих выпусках и могут отсутствовать в некоторых запланированных функциях. API-интерфейсы с аннотацией @Alpha
могут содержать известные проблемы, влияющие на функциональность, производительность и стабильность. Они также освобождаются от каких-либо гарантий совместимости, предоставляемых содержащей их библиотекой.
Не рекомендуется приложениям использовать Alpha API в производственных средах или библиотекам (которые включаются в CLASSPATH пользователей вне контроля разработчиков библиотек) зависеть от этих API. API-интерфейсы Alpha предназначены только для экспериментальных целей .
API, отмеченные аннотацией @Beta
на уровне класса или метода, могут быть изменены. Их можно изменить любым способом или даже удалить в любое время. Если ваш код сам по себе является библиотекой (т. е. он используется в CLASSPATH пользователей вне вашего контроля), вам не следует использовать бета-версии API, если вы не переупаковаете их (например, с помощью затенения и т. д.).
API, отмеченные аннотацией @Deprecated
на уровне класса или метода, будут поддерживаться до следующего основного выпуска, но рекомендуется прекратить их использование.
Весь код внутри пакетов com.mongodb.internal.*
считается частным API, и на него вообще нельзя полагаться. Оно может измениться в любой момент.
Информацию о двоичных файлах и зависимостях для Maven, Gradle, Ivy и других можно найти по адресу http://search.maven.org.
Пример для Maven:
< dependency >
< groupId >org.mongodb</ groupId >
< artifactId >mongodb-driver-sync</ artifactId >
< version >x.y.z</ version >
</ dependency >
Сборки моментальных снимков также регулярно публикуются через Sonatype.
Пример для Maven:
< repositories >
< repository >
< id >sonatype-snapshot</ id >
< url >https://oss.sonatype.org/content/repositories/snapshots/</ url >
</ repository >
</ repositories >
Для сборки и компиляции исходного кода необходимы Java 17+ и git. Чтобы собрать и протестировать драйвер:
$ git clone https://github.com/mongodb/mongo-java-driver.git
$ cd mongo-java-driver
$ ./gradlew check
Для набора тестов требуется, чтобы mongod был запущен с enableTestCommands
, который можно установить с помощью параметра командной строки --setParameter enableTestCommands=1
:
$ mkdir -p data/db
$ mongod --dbpath ./data/db --logpath ./data/mongod.log --port 27017 --logappend --fork --setParameter enableTestCommands=1
Если при запуске тестов вы столкнулись с ошибкой "Too many open files"
, вам нужно будет увеличить количество доступных дескрипторов файлов перед запуском mongod, как описано в https://www.mongodb.com/docs/manual/reference/ulimit. /
Для запуска кода в IntelliJ требуется несколько шагов ручной настройки:
Для сборки и компиляции исходного кода требуется Java 17+.
Ошибка: java: cannot find symbol: class SNIHostName location: package javax.net.ssl
Исправлено: «Настройки/Настройки» > «Сборка, выполнение, развертывание» > «Компилятор» > «Компилятор Java» — снимите флажок «Использовать опцию --release для кросс-компиляции (Java 9 и более поздних версий)».
Ошибка: java: package com.mongodb.internal.build does not exist
Исправления: Любое из следующего:
generateBuildConfig
: например: ./gradlew generateBuildConfig
или через Gradle > driver-core > Tasks > buildconfig >generateBuildConfig.generateBuildConfig
для выполнения перед сборкой. через Gradle > Задачи > buildconfig > щелкните правой кнопкой мыши GenerateBuildConfig - нажмите "Выполнить перед сборкой"