MongoDB är ett databashanteringssystem (DBMS) med öppen källkod som använder en dokumentorienterad datamodell. Den anses vara en NoSQL-databas, eftersom den inte använder relationsmodellen och därför inte använder SQL som frågespråk.
Den dokumentorienterade modellen gör det möjligt för MongoDB att lagra semi-strukturerad data som inte kräver ett fast schema. Det kan uppnå detta genom att använda JSON-dokument.
MongoDB används av några av de största företagen i världen, inklusive Facebook, Google, Nokia, MTV Networks, Cisco, Forbes och många fler.
MongoDB är också en plattformsoberoende DBMS som för närvarande stöder Windows, Mac, Solaris och olika Linux-distributioner i skrivande stund.
En MongoDB-databas skiljer sig från en relationsdatabas genom att MongoDB använder en dokumentorienterad modell för att lagra data. I den dokumentorienterade modellen lagras data i dokument i en samling. I relationsmodellen lagras data inom rader i en tabell.
Samlingarna
I MongoDB är en samling en grupp av dokument. En samling innehåller vanligtvis dokument som har ett liknande ämne (som användare, produkter, inlägg, etc).
Samlingar liknar därför på många sätt tabeller från relationsmodellen.
Dokumenten
I MongoDB lagras dokument som JSON dokument. JSON (JavaScript Object Notation) är en standard som underlättar datautbyte. JSON-dokument liknar XML-dokument genom att data kan presenteras på ett hierarkiskt sätt och kan läsas av både människor och datorer.
Här är ett exempel på ett JSON-dokument. Så här ser dokument inuti en MongoDB-databas ut.
{ artistname : "Deep Purple", albums : [ { album : "Machine Head", year : 1972, genre : "Rock" }, { album : "Stormbringer", year : 1974, genre : "Rock" } ] }
_id
fältet är den unika identifieraren för ett dokument. MongoDB tillåter att varje dokument kan hämtas/referas med detta fält. Du kan tillhandahålla detta eller låta MongoDB generera det.
Genom att använda JSON kan frågeresultat enkelt analyseras, med liten eller ingen transformation, direkt av JavaScript och de flesta populära programmeringsspråken. Detta beror på att JSON-dokument använder namn/par och arraykonventioner som är bekanta för de flesta populära programmeringsspråken som C, C++, C#, Java, JavaScript, Perl, Python och många andra. Detta minskar mängden affärslogik som behöver byggas in i applikationer som använder MongoDB.
Bakom kulisserna lagrar MongoDB faktiskt JSON-dokumenten i ett binärkodat format som kallas BSON. BSON utökar JSON genom att stödja ytterligare datatyper och för att vara effektiv för kodning och avkodning inom olika språk.
Schemalös
Varje JSON-dokument i en samling kan innehålla sin egen struktur. Därför finns det inget fast schema som begränsar vilken typ av data som kan matas in i en MongoDB-databas.
Detta är i motsats till en relationsdatabas där du måste skapa schemat först (dvs definiera tabeller, kolumner, datatyper, etc), innan du anger några data. Om data inte följer schemat, hamnar den inte i databasen.
I en MongoDB-databas finns det ingen regel som säger vilka fält, eller hur många fält, varje dokument ska ha. Till exempel kan ett dokument från en samling innehålla namn, adress och telefonnummer, medan ett annat dokument kan innehålla namn och e-postadress.