FerretDB ning birinchi barqaror versiyasi, PostgreSQL DBMS asosidagi MongoDB ilovasi

FerretDB 1.0 loyihasining chiqarilishi nashr etildi, bu sizga hujjatga yo'naltirilgan MongoDB ma'lumotlar bazasini PostgreSQL bilan dastur kodiga o'zgartirish kiritmasdan almashtirish imkonini beradi. FerretDB MongoDB-ga qo'ng'iroqlarni SQL so'rovlariga PostgreSQL-ga tarjima qiladigan proksi-server sifatida amalga oshiriladi, bu sizga PostgreSQL-ni haqiqiy saqlash sifatida ishlatish imkonini beradi. 1.0 versiyasi umumiy foydalanishga tayyor birinchi barqaror nashr sifatida belgilangan. Kod Go-da yozilgan va Apache 2.0 litsenziyasi ostida tarqatiladi.

FerretDB ning asosiy maqsadli auditoriyasi o'z ilovalarida MongoDB ilg'or xususiyatlaridan foydalanmaydigan, lekin butunlay ochiq dasturiy ta'minot to'plamidan foydalanmoqchi bo'lgan foydalanuvchilardir. Rivojlanishning hozirgi bosqichida FerretDB odatiy ilovalarda eng ko'p ishlatiladigan MongoDB xususiyatlarining bir qismini qo'llab-quvvatlaydi. FerretDB-ni amalga oshirish zarurati MongoDB-ning AGPLv3 litsenziyasiga asoslangan bepul bo'lmagan SSPL litsenziyasiga o'tishi munosabati bilan paydo bo'lishi mumkin, lekin ochiq emas, chunki u nafaqat SSPL litsenziyasi bo'yicha etkazib berish uchun kamsituvchi talabni o'z ichiga oladi. dastur kodining o'zi, shuningdek, bulut xizmatlarini taqdim etishda ishtirok etadigan barcha komponentlarning manba kodlari.

MongoDB kalit/qiymat ma'lumotlari va funktsional va so'rov qilish oson bo'lgan relyatsion ma'lumotlar bazasida ishlaydigan tez va kengaytiriladigan tizimlar o'rtasida joyni egallaydi. MongoDB hujjatlarni JSON formatida saqlashni qo'llab-quvvatlaydi, so'rovlarni yaratish uchun juda moslashuvchan tilga ega, turli xil saqlangan atributlar uchun indekslarni yaratishi mumkin, katta ikkilik ob'ektlarni samarali saqlashni ta'minlaydi, ma'lumotlar bazasiga ma'lumotlarni o'zgartirish va qo'shish operatsiyalarini qayd qilishni qo'llab-quvvatlaydi. Xarita/Kamaytirish paradigmasiga muvofiq ishlash, replikatsiyani qo'llab-quvvatlaydi va xatolarga chidamli konfiguratsiyalarni qurish.

FerretDB 1.0 dagi o'zgarishlar orasida:

  • To'plamga bir yoki bir nechta indekslarni yaratish va tushirish uchun createIndexes va dropIndexes buyruqlari amalga oshirildi.
  • GetMore buyrug'i topish va yig'ish kabi kursorni qaytaruvchi buyruqlar bajarilishi natijasida olingan natijaning yangi qismini ko'rsatish uchun amalga oshirildi.
  • Guruh qiymatlari yig‘indisini hisoblash uchun $sum yig‘ish operatori uchun qo‘shimcha yordam qo‘shildi.
  • $limit va $skip operatorlari sonini cheklash va hujjatlarni yigʻishda oʻtkazib yuborish uchun qoʻshilgan yordam.
  • Hujjatlarni jamlashda hisoblash uchun $count operatori qoʻshildi.
  • Kiruvchi hujjatlardagi massiv maydonlarini tahlil qilish va massivning har bir elementi uchun alohida hujjat bilan roʻyxatni shakllantirish uchun $unwind operatori uchun qoʻshimcha qoʻllab-quvvatlash qoʻshildi.
  • To'plam va ma'lumotlar bazasi statistikasi va ma'lumotlar hajmini olish uchun collStats, dbStats va dataSize buyruqlari uchun qisman qo'llab-quvvatlash qo'shildi.

Manba: opennet.ru

a Izoh qo'shish