Kehittäjä | MongoDB, Inc. ( sisään ) |
---|---|
Ensimmäinen versio | 2009 |
Viimeinen versio | 5,0 (13. heinäkuuta 2021) |
Edistynyt versio |
3.7.1 (16. tammikuuta 2018) 4.3.0 (3. kesäkuuta 2019) |
Tallettaa | MongoDB on GitHub |
Projektin tila | aktiivisessa kehityksessä |
Kirjoitettu | C ++ , Go , JavaScript , C ja Python |
Käyttöjärjestelmä | Linux , macOS , Microsoft Windows ja OpenBSD |
Tyyppi |
NoSQL DBMS Asiakirjapainotteinen tietokanta Tietokannan hallintajärjestelmä Lähteestä saatavilla oleva ohjelmisto ( fi ) |
Lisenssi | Palvelinpuolen lisenssi ( GNU AGPL v3.0 -lisenssin innoittamana ) palvelimille ja työkaluille; Apache v2.0 (ohjaimet); Creative Commons BY-NC-SA 3.0 (dokumentaatio) |
Verkkosivusto | www.mongodb.com |
MongoDB (englanniksi humongous, joka voidaan kääntää "valtavaksi") on tietokantojen hallintajärjestelmään suuntautunut asiakirja , joka voidaan lähettää mihin tahansa tietokoneeseen, eikä vaadi ennalta määritettyä datakaavaa. Se on kirjoitettu C ++: lla . Palvelinta ja työkaluja jaetaan SSPL-lisenssillä , ohjaimet Apache-lisenssillä ja dokumentaatio Creative Commons -lisenssillä . Se on osa NoSQL- liikettä .
MongoDB on kehittänyt MongoDB: tä vuodesta 2007. Tämä yritys oli, että systeemin Cloud computing , laajalti dataa tietokoneelle, samanlainen palvelu Google App Engine alkaen Google .
Siitä on sittemmin tullut yksi yleisimmin käytetyistä DBMS: istä, erityisesti Craigslist , eBay , Foursquare , SourceForge.net , Viacom , pagesjaunes ja New York Times -sivustot .
Siitä asti kun lokakuu 2018, MongoDB julkaistaan Server Side Public License (SSPL) -lisenssillä, joka on projektin kehittämä lisenssi. Se korvaa GNU Affero General Public License -lisenssin ja on melkein identtinen GNU General Public License -versio 3: n kanssa , mutta edellyttää, että niiden, jotka asettavat ohjelmistoja yleisön saataville osana palvelua, on asetettava kaikki palvelun lähdekoodit saataville tämän mukaisesti. lisenssi. SSPL toimitettiin sertifioitavaksi avoimen lähdekoodin aloitteelle, mutta se peruutettiin myöhemmin OSI: n haluttomuuden vuoksi. Kieliohjaimet ovat saatavilla Apache-lisenssillä . Lisäksi MongoDB Inc. tarjoaa omistettuja lisenssejä MongoDB: lle. Uusimmat AGPL-version 3 lisensoidut versiot ovat 4.0.3 (vakaa) ja 4.1.4.
MongoDB on poistettu Debian- , Fedora- ja Red Hat Enterprise Linux -jakeluista lisenssimuutoksen vuoksi. Fedora on katsonut, että SSPL-versio 1 ei ole ilmainen ohjelmistolisenssi, koska se on "tarkoituksellisesti suunniteltu aggressiivisesti syrjiväksi" kaupallisia käyttäjiä vastaan.
MongoDB: n avulla voit käsitellä jäsenneltyjä objekteja BSON- muodossa ( binaarinen JSON ) ilman ennalta määrättyä skeemaa. Toisin sanoen avaimet voidaan lisätä milloin tahansa "lennossa" ilman tukiaseman kokoonpanoa.
Tiedot ovat asiakirjoja, jotka itse tallennetaan kokoelmiin , kokoelma, joka sisältää minkä tahansa määrän asiakirjoja. Kokoelmat ovat kuin taulukoita , ja asiakirjat ovat kuin tietueita relaatiotietokannoissa. Toisin kuin relaatiotietokannoissa, tietueen kentät ovat ilmaisia ja voivat vaihdella tietueesta toiseen saman kokoelman sisällä. Ainoa yleinen ja pakollinen kenttä on ensisijaisen avaimen ("id") kenttä. Lisäksi MongoDB ei salli erittäin monimutkaisia standardoituja kyselyitä tai JOIN-tiedostoja , mutta voit ohjelmoida tiettyjä pyyntöjä JavaScriptiin .
Seuraavat tiedot:
Henkilötunnus | Sukunimi | Etunimi | Ikä |
---|---|---|---|
6 | DUMOND | Farkut | 43 |
7 | Pyhiinvaeltaja | Franck | TYHJÄ |
8 | MARTIN | Emile | 62 |
9 | KUNINGAS | TYHJÄ | 51 |
Vastaava koodi taulukon (esimerkiksi csv ) taulukkotiedostossa (esimerkiksi Calc from LibreOffice ) on:
ID,Nom,Prénom,Âge 6,DUMOND,Jean,43 7,PELLERIN,Franck 8,MARTIN,Emile,62 9,KING,,51Huomaa, että arvo saattaa puuttua ( NULL ), mutta jokaisella rivillä on sama määrä kenttiä.
Toisin sanoen samalla asettelulla (esimerkiksi .php- sivu verkkoselaimessa) NoSQL-kokoelmalla voi olla eri kentät kullakin rivillä (ja jopa sijoittaa useita kenttiä peräkkäin):
{ "_id": ObjectId("4efa8d2b7d284dad101e4bc7"), "Nom": "DUMOND", "Prénom": "Jean", "Âge": 43 }, { "_id": ObjectId("4efa8d2b7d284dad101e4bc8"), "Nom": "PELLERIN", "Prénom": "Franck", "Adresse": "1 chemin des Loges", "Ville": "VERSAILLES" }, { "_id": ObjectId("4efa8d2b7d284dad101e4bc9"), "Nom": "KING", "Âge": "51", "Adresse": "36 quai des Orfèvres", "Ville": "PARIS" }Huomaa heti, että uusimpiin tietueisiin on lisätty uusia kenttiä, millä ei ole vaikutusta vanhimpaan tietueeseen. Tämä tekee NoSQL: stä niin erikoisen. Huomaa myös, että tämä tallennustila muodossa "attribute =" value "" on hyvin lähellä XML: ää . Lisäksi SQL-kyselykielellä oleva tietokannan dump ( (en) dump) voi myös ottaa tämän "attribute =" value "" -muodon, mutta sitä voidaan käyttää vain, kun se luodaan uudelleen taulukoiden muodossa ( DBMS: ssä ).
MongoDB-kokoelman asiakirjoilla voi olla erilaisia kenttiä (huomaa: "_id" -kenttä on pakollinen kenttä, jonka MongoDB on luonut ja lisännyt, se on yksilöllinen hakemisto, joka tunnistaa asiakirjan).
Vuonna asiakirjassa , kenttiä voidaan lisätä, poistaa, muokata ja nimeksi milloin tahansa. Toisin kuin relaatiotietokannoissa , ei ole ennalta määritettyä kaavaa. Rakennetta asiakirja on hyvin yksinkertainen ja sisältää avain / arvo-pareja, kuten hakurakenne , avain on nimi kentän arvo sen sisällön (katso tässä yhteydessä JSON muodossa ). Nämä kaksi on erotettu kaksoispisteellä ":", kuten yllä olevassa esimerkissä on esitetty. "Arvo" voi olla luku tai teksti, mutta myös binääridata (kuten kuva) tai kokoelma muita avain / arvo-pareja alla olevan esimerkin mukaisesti:
{ "_id": ObjectId("4efa8d2b7d284dad101e4bc7"), "Nom": "PELLERIN", "Prénom": "Franck", "Âge": 29, "Adresse": { "Rue" : "1 chemin des Loges", "Ville": "VERSAILLES" } }Tässä ovat sisäkkäiset asiakirjat : Osoite- kenttä sisältää asiakirjan, jossa on kaksi kenttää : "Katu" ja "Kaupunki".
Tiettyjä toimintoja aloilla kuten incrementation voidaan suorittaa atomaarisesti , eli siirtämättä tai kopioimalla dokumentti .
MongoDB: ssä on sidokset tärkeimmille ohjelmointikielille :
Näiden ohjainten avulla voit käsitellä tietokantaa ja sen tietoja suoraan näillä kielillä. MongoDB: llä on kuitenkin myös työkalu, jota voidaan käyttää komentoriviltä ja joka antaa pääsyn tietokannan äidinkielelle : JavaScriptiin , jonka avulla voit myös käsitellä tietokantaa.
Kirjoittaessasi:
./mongoon komentoriviltä ja käyttöjärjestelmä , se käynnistää kuori MongoDB vuorovaikutteinen.
Vuonna tietokanta nimeltä myyntiin , joka sisältää useita kokoelmia, tässä on se, miten voisi näyttää kaikki asiakirjat kokoelman nimeltä asiakkaita :
> use vente // Sélectionne la base de données "vente" > db.clients.find(); // Cherche et affiche tous les documents de la collection "clients".Tulos tulostetaan ruudulle:
{ "_id": 28974, "Nom": "ID Technologies", "Adresse" : "7 Rue de la Paix, Paris"} { "_id": 89136, "Nom": "Yoyodine", "Adresse" : "8 Rue de la Reine, Versailles"}MongoDB: n virallisessa dokumentaatiossa (katso ulkoisten linkkien osio ) kuvataan yksityiskohtaisesti mekanismit tietojen manipuloimiseksi mongo- työkalun avulla . MongoDB-tietokannan manipuloimiseksi ohjelmointikielestä sen tulisi kuitenkin viitata kyseisen kielen ohjaimen ( ohjaimen ) dokumentaatioon .
MongoDB Tools -sivusto (riippumaton MongoDB-yrityksestä) viittaa erilaisiin ratkaisuihin MongoDB-tietokannan avulla.
Merkittävä esimerkki asiakashallintaan hakemus tämän tietokannan hallintajärjestelmä on Robo 3T (entinen Robomongo).
MongoDB: tä voidaan käyttää tiedostojärjestelmänä , tämä tietokannan melko epätavallinen toiminto antaa kuitenkin mahdollisuuden hyödyntää kaikkia Käyttöönotto- osassa kuvattuja ominaisuuksia , nimittäin tietojen replikointia ja jakelua palvelinsarjassa , ja käyttää sitä hallita tiedostoja.
Tämä toiminto, nimeltään GridFS , sisältyy MongoDB: n mukana toimitettuihin ohjaimiin ja sitä voidaan käyttää ilman erityisiä vaikeuksia ohjelmointikielissä. Ohjelmoijalla on toimintoja tiedostojen ja niiden sisällön manipuloimiseksi, MongoDB huolehtii niiden hallinnasta.
Järjestelmässä, joka toimii useilla MongoDB-palvelimilla , tiedostot voidaan siten automaattisesti jakaa ja kopioida tietokoneiden välillä avoimesti, mikä tarjoaa järjestelmälle vikasietoisuuden ja kuormituksen tasapainottamisen, jotka MongoDB tuo dataan.
Hierarkkinen tietokantoja on kehitetty alhaisen suorituskyvyn laitteisto Nuo 1970 1990, tehokkain, voisi käyttää relaatiomalliksi (paljon kuluttaja, mutta paljon joustavampaa). 2010-luvulla sallittiin ei-vain- SQL (" NoSQL ": ei-vain- SQL ) -tietokantojen , kuten MongoDB: n, yhdistäminen määritteet (tai kentät ) reaaliajassa kysynnälle asetettuihin tietoihin, joita voidaan sitten käyttää kyselyjen kautta . Kummassakin näistä kahdesta lähestymistavasta hyödynnetään laitteiston alhaisemmat kustannukset ja lisääntynyt teho yksinkertaisemman ja nopeamman kehityksen mahdollistamiseksi.
Mukaan db-engines.com, MongoDB vie 5 th sijalle suosituin tietokannan hallintajärjestelmätmaaliskuu 2017, kaikki tyypit yhdistettynä, ja ensimmäinen sija NoSQL-tietokantojen hallintajärjestelmille (Google- ja Bing-hakutulosten sekä Google-kyselyjen lukumäärä).
MongoDB tukee replikointia isäntä-orja- mallin kautta vikojen kestävyyden ja kuormituksen tasapainottamisen kannalta .
Käytännössä MongoDB voi toimia useilla tietokoneilla jakamalla tai kopioimalla tietoja. Täten on mahdollista jakaa tietoja useille koneille työmäärän jakamiseksi, mutta on myös mahdollista kopioida kunkin tietokoneen tiedot yhdellä tai useammalla tietokoneella, jotta tietokantajärjestelmä pysyy toiminnassa myös vikatilanteissa. '' yhden heistä epäonnistuminen. MongoDB myös helpottaa näiden kokoonpanojen asentamista automatisoimalla ne. Tällä tavalla on täysin mahdollista lisätä yksi tai useampi tietokone käynnissä olevaan tietokantaan .
MongoDB: n suorituskykykysymyksillä voi olla suuri vaikutus sovelluksiin, jotka käyttävät tätä tietokantaa tuotantoinfrastruktuurissaan. Niiden välttämiseksi on välttämätöntä seurata MongoDB: n antamia keskeisiä mittareita (tilastoja) riippumatta siitä, käytätkö MongoDB: tä WiredTigerin kanssa, nyt oletusarvoisesti, tai MMAPv1:
Kaikki nämä tilastot voidaan kerätä kolmella tavalla: