Available ang DBMS MongoDB 5.0 na nakatuon sa dokumento

Ang release ng document-oriented na DBMS MongoDB 5.0 ay ipinakita, na sumasakop sa isang angkop na lugar sa pagitan ng mabilis at scalable na mga system na nagpapatakbo ng data sa key/value format, at mga relational na DBMS na gumagana at madaling bumuo ng mga query. Ang MongoDB code ay nakasulat sa C++ at ipinamahagi sa ilalim ng SSPL license, na nakabatay sa AGPLv3 license, ngunit hindi bukas, dahil naglalaman ito ng discriminatory requirement na ihatid sa ilalim ng SSPL license hindi lamang ang application code mismo, kundi pati na rin ang source. code ng lahat ng sangkap na kasangkot sa pagbibigay ng serbisyo sa cloud.

Sinusuportahan ng MongoDB ang pag-iimbak ng mga dokumento sa isang format na tulad ng JSON, may medyo nababaluktot na wika para sa pagbuo ng mga query, maaaring lumikha ng mga index para sa iba't ibang naka-imbak na katangian, mahusay na nagbibigay ng imbakan ng malalaking binary object, sumusuporta sa pag-log ng mga operasyon upang baguhin at magdagdag ng data sa database, maaari gumana alinsunod sa paradigm Map/Reduce, sumusuporta sa pagtitiklop at pagbuo ng fault-tolerant na mga configuration.

Ang MongoDB ay may built-in na sharding tool (namamahagi ng set ng data sa mga server batay sa isang partikular na key), kasama ng pagtitiklop, na nagpapahintulot sa iyo na bumuo ng isang pahalang na nasusukat na cluster ng imbakan na walang isang punto ng pagkabigo (ang pagkabigo ng anumang node ay hindi nakakaapekto sa pagpapatakbo ng database), awtomatikong failover at load transfer mula sa isang nabigong node. Ang pagpapalawak ng isang cluster o pag-convert ng isang server sa isang cluster ay ginagawa nang hindi humihinto sa database sa pamamagitan lamang ng pagdaragdag ng mga bagong machine.

Mga tampok ng bagong release:

  • Nagdagdag ng mga koleksyon para sa data sa anyo ng isang serye ng oras (mga koleksyon ng serye ng oras), na-optimize para sa pag-iimbak ng mga hiwa ng mga halaga ng parameter na naitala sa ilang mga agwat (oras at isang hanay ng mga halaga na tumutugma sa oras na ito). Ang pangangailangan na mag-imbak ng naturang data ay lumitaw sa mga sistema ng pagsubaybay, mga platform sa pananalapi, at mga sistema para sa mga estado ng sensor ng botohan. Ang pagtatrabaho sa data ng serye ng oras ay isinasagawa tulad ng sa mga ordinaryong koleksyon ng dokumento, ngunit ang mga index at paraan ng pag-iimbak para sa mga ito ay na-optimize na isinasaalang-alang ang sanggunian ng oras, na maaaring makabuluhang bawasan ang pagkonsumo ng espasyo sa disk, bawasan ang mga pagkaantala sa pagpapatupad ng mga query at paganahin ang real-time na data pagsusuri.

    Itinuturing ng MongoDB ang mga naturang koleksyon bilang nasusulat, hindi na-materialize na mga view na binuo sa mga panloob na koleksyon na, kapag ipinasok, ay awtomatikong nagpapangkat-pangkat ng data ng time series sa isang na-optimize na format ng storage. Sa kasong ito, ang bawat talaang nakabatay sa oras ay itinuturing bilang isang hiwalay na dokumento kapag hiniling. Awtomatikong inaayos at nai-index ang data ayon sa oras (hindi na kailangang tahasang gumawa ng mga index ng oras).

  • Nagdagdag ng suporta para sa mga window operator (analytical functions) na nagbibigay-daan sa iyong magsagawa ng mga aksyon na may partikular na hanay ng mga dokumento sa koleksyon. Hindi tulad ng mga pinagsama-samang function, hindi kino-collapse ng mga function ng window ang nakapangkat na hanay, ngunit sa halip ay pinagsama-samang batay sa mga nilalaman ng isang "window" na kinabibilangan ng isa o higit pang mga dokumento mula sa hanay ng resulta. Upang manipulahin ang isang subset ng mga dokumento, iminumungkahi ang isang bagong yugto ng $setWindowFields, kung saan maaari mong, halimbawa, matukoy ang mga pagkakaiba sa pagitan ng dalawang dokumento sa isang koleksyon, kalkulahin ang mga ranggo ng benta, at suriin ang impormasyon sa kumplikadong serye ng oras.
  • Nagdagdag ng suporta para sa API versioning, na nagbibigay-daan sa iyong mag-bind ng isang application sa isang partikular na API state at alisin ang mga panganib na nauugnay sa isang posibleng paglabag sa backward compatibility kapag lumilipat sa mga bagong release ng DBMS. Ang API versioning ay naghihiwalay sa application life cycle mula sa DBMS life cycle at nagbibigay-daan sa mga developer na gumawa ng mga pagbabago sa application kapag may pangangailangang gumamit ng mga bagong feature, at hindi kapag lumilipat sa isang bagong bersyon ng DBMS.
  • Nagdagdag ng suporta para sa mekanismo ng Live Resharding, na nagbibigay-daan sa iyong baguhin ang mga shard key na ginagamit para sa pag-segment nang mabilisan nang hindi humihinto sa DBMS.
  • Ang mga posibilidad para sa pag-encrypt ng mga field sa panig ng kliyente ay pinalawak (Client-Side Field Level Encryption). Posible na ngayong muling i-configure ang mga filter ng pag-audit at paikutin ang mga x509 na sertipiko nang hindi humihinto sa DBMS. Nagdagdag ng suporta para sa pag-configure ng cipher suite para sa TLS 1.3.
  • Ang isang bagong command line shell, MongoDB Shell (mongosh), ay iminungkahi, na binuo bilang isang hiwalay na proyekto, na nakasulat sa JavaScript gamit ang Node.js platform at ipinamamahagi sa ilalim ng Apache 2.0 na lisensya. Ginagawang posible ng MongoDB Shell na kumonekta sa DBMS, baguhin ang mga setting at magpadala ng mga query. Sinusuportahan ang matalinong autocompletion para sa pagpasok ng mga pamamaraan, command at MQL expression, pag-highlight ng syntax, tulong sa konteksto, pag-parse ng mga mensahe ng error at ang kakayahang palawakin ang functionality sa pamamagitan ng mga add-on. Ang lumang "mongo" CLI wrapper ay hindi na ginagamit at aalisin sa susunod na release.
    Available ang DBMS MongoDB 5.0 na nakatuon sa dokumento
  • Ang mga bagong operator ay naidagdag: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate at $rand.
  • Tinitiyak na ginagamit ang mga index kapag ginagamit ang mga operator na $eq, $lt, $lte, $gt at $gte sa loob ng expression na $expr.
  • Ang pinagsama-samang, hanapin, hanapinAndModify, i-update, tanggalin ang mga utos at ang db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() at db.collection.remove() ay sumusuporta na ngayon sa "hayaan ” na opsyon upang tukuyin ang isang listahan ng mga variable na ginagawang mas nababasa ang mga command sa pamamagitan ng paghihiwalay ng mga variable mula sa katawan ng kahilingan.
  • Ang paghahanap, pagbibilang, pagkakaiba, pagsasama-sama, mapReduce, listCollections, at listIndexes na mga operasyon ay hindi na hinaharangan kung ang isang operasyon na kumukuha ng eksklusibong lock sa isang koleksyon ng dokumento ay tumatakbo nang magkatulad.
  • Bilang bahagi ng isang inisyatiba upang alisin ang mga maling termino sa pulitika, ang isMaster command at db.isMaster() method ay pinalitan ng pangalan na hello at db.hello().
  • Ang scheme ng pag-release ng pagnunumero ay binago at ang isang paglipat ay ginawa sa isang predictable na iskedyul ng paglabas. Isang beses sa isang taon magkakaroon ng makabuluhang release (5.0, 6.0, 7.0), bawat tatlong buwan na intermediate release na may mga bagong feature (5.1, 5.2, 5.3) at, kung kinakailangan, corrective update na may mga pag-aayos ng bug at mga kahinaan (5.1.1, 5.1.2). .5.1.3 , 5.1). Ang mga pansamantalang release ay bubuo ng functionality para sa susunod na major release, i.e. Ang MongoDB 5.2, 5.3, at 6.0 ay magbibigay ng mga bagong feature para sa pagpapalabas ng MongoDB XNUMX.

Pinagmulan: opennet.ru

Magdagdag ng komento