MongoDB és una base de dades NoSQL escrita amb C++ i orientada amb documents. Està disenyada per garantir la escalabilitat de les dades i que aquestes poguin ser consultades d’una forma ràpida. També permet emmagatzemar fitxers de grany tamany (dividint-los en porcions més petites) incrustats directament a la base de dades.
Per tal d’accedir a les dades mongoDB proporciona una llenguatge orientat a objectes, que suporta la majoria de les característiques dels llenguatge SQL tradicional. Així ens permet realitzar les següents operacions:
- Realitzar filtres a les nostes conultes.
- Obtenir només algunes propietats dels documents, obtenir tots els camps excepte un. (elegir les columnes a seleccionar en SQL tradicionals)
- Obtenir els resultats de forma ordenadar.
- Limitar el conjunt de resultats i saltar els N primers, per a realizar paginacions de forma fàcil.
- Especificar pistes al optimitzador de consultes perquè aquestes tinguin més velocitat.
- Obtenir informació de forma agregada.
- Proporciona metodes per guardar objectes: Automàticament comprova si l’objecte existeix i determina si ha d’actualitzar l’existent o crear un the nou.
Per als més curiosos, podeu provar aquesta interfície directament des del vostre navegador a la pàgina oficial de MongoDB. (Heu de clicar sobre “Try It Out”)
Alta disponiblitat i escalabilitat
Una de les caracterísitiques que fa MongoDB més interesant és que ha estat disenyat per garantir l’alta disponibilitat i la escalabilitat. Així MongoDB soporta dos tipus diferents de replicació, la tradicional esclau-servidor i el que s’anomena ReplicaSets: replicació asíncrona entre multiples instáncies (repliques) amb recuperació automática dels membres.
Pel que fa a l’escalabilitat MongoDB en permet fer sharding de les coleccións, és a dir particionar les dades en diferents maquines, aocupantse automàticament de la distribució de la càrrega entre els diferents nodes. Així MongoDB es capàs de determinar quines de les copies disposen de l’informació i preguntar només a la màquina que la disposa. Això es tradueix amb consultes molt més eficients.