Yekem serbestberdana aram a FerretDB, pêkanîna MongoDB li ser bingeha PostgreSQL DBMS

Опубликован выпуск проекта FerretDB 1.0, позволяющего заменить документо-ориентированную СУБД MongoDB на PostgreSQL без внесения изменений в код приложений. FerretDB реализован как прокси-сервер, транслирующий обращения к MongoDB в SQL-запросы к PostgreSQL, что позволяет использовать PostgreSQL в качестве фактического хранилища. Версия 1.0 отмечена как первый стабильный выпуск, готовый для повсеместного использования. Код написан на языке Go и распространяется под лицензией Apache 2.0.

Основной целевой аудиторией FerretDB являются пользователи, которые не применяют в своих приложениях расширенные возможности MongoDB, но желают использовать полностью открытый программный стек. На текущем этапе развития FerretDB поддерживает подмножество возможностей MongoDB, наиболее часто применяемых в типовых приложениях. Необходимость внедрения FerretDB может возникнуть в связи с переходом MongoDB на несвободную лицензию SSPL, которая основана на лицензии AGPLv3, но не является открытой, так как содержит дискриминирующее требование поставки под лицензией SSPL не только кода самого приложения, но и исходных текстов всех компонентов, вовлечённых в предоставление облачного сервиса.

MongoDB di navbera pergalên bilez û berbelav ên ku li ser daneyan di formata sereke/nirxê de dixebitin, û DBMS-yên têkildar ên ku bikêrhatî ne û çêkirina pirsan hêsan in de cîh digire. MongoDB piştgirî dide hilanîna belgeyên di forma JSON-mîna de, xwedan zimanek pir maqûl e ji bo afirandina pirsan, dikare ji bo celebên celebên hilanîn indexan biafirîne, bi bandor hilanîna tiştên mezin ên binary peyda dike, piştgirî dide qeydkirina operasyonan ji bo guhertin û zêdekirina daneyan li databasê, dikare li gorî paradîgmaya Nexşe / Kêmkirin bixebite, ji nûvekirin û avakirina konfigurasyona xelet-tolerant piştgirî dike.

Среди изменений в FerretDB 1.0:

  • Реализованы команды createIndexes и dropIndexes для создания и удаления одного или нескольких индексов к коллекции.
  • Реализована команда getMore для вывода новой порции результата, полученного при выполнении команд, возвращающих курсор, таких как find и aggregate.
  • Добавлена поддержка агрегирующего оператора $sum для вычисления суммы значений группы.
  • Добавлена поддержка операторов $limit и $skip для ограничения числа и пропуска документов при агрегировании.
  • Добавлена поддержка оператора $count для подсчёта документов при агрегировании.
  • Добавлена поддержка оператора $unwind для разбора полей массива во входящих документах и формирования списка с отдельным документом для каждого элемента массива.
  • Добавлена частичная поддержка команд collStats, dbStats и dataSize для получения статистики о коллекции и БД, а также размере данных.

Source: opennet.ru

Add a comment