Você está na página 1de 8

20/9/2015

MongoDBWikipedia,laenciclopedialibre

MongoDB
DeWikipedia,laenciclopedialibre
MongoDB(delapalabraeninglshumongousque
significa enorme) es un sistema de base de datos
NoSQLorientadoadocumentos,desarrolladobajoel
conceptodecdigoabierto.
MongoDB forma parte de la nueva familia de
sistemasdebasededatosNoSQL.Envezdeguardar
losdatosentablascomosehaceenlasbasededatos
relacionales,MongoDBguardaestructurasdedatosen
documentos tipo JSON con un esquema dinmico
(MongoDB llama ese formato BSON), haciendo que
laintegracindelosdatosenciertasaplicacionessea
msfcilyrpida.
El desarrollo de MongoDB empez en octubre de
2007 por la compaa de software 10gen.
[citarequerida] Ahora MongoDB es una base de datos
lista para su uso en produccin y con muchas
caractersticas(features).Estabasededatosseutiliza
muchoenlaindustria1yMTVNetwork,2Craiglist3y
Foursquare4sonalgunasdelasempresasqueutilizan
estabasededatos.
El cdigo binario est disponible para los sistemas
operativosWindows,Linux,OSXySolaris.

ndice
1Historia
2Concesindelicenciasysoporte
3Caractersticasprincipales
3.1ConsultasAdhoc
3.2Indexacin
3.3Replicacin
3.4Balanceodecarga
3.5Almacenamientodearchivos
3.6Agregacin
3.7EjecucindeJavaScriptdelladodel
servidor
4Fragmentacion(Sharding)
5Principalesproblemas
5.1Noimplementalaspropiedadesacid
5.2Problemasdeconsistencia
5.3Bloqueoaniveldedocumento

https://es.wikipedia.org/wiki/MongoDB

MongoDB

Desarrollador
10gen
http://www.mongodb.org/
Informacingeneral
Modelode
desarrollo

Cdigoabierto

Lanzamiento 2009
inicial
ltima
versin
estable

3.0.5(info
(http://www.mongodb.org/downloads))

ltima
versinen
pruebas

2.6.11rc1

Gnero

Basededatos,NoSQL

28dejuliode2015

2015deagostode04

Programado C++
en
Sistema
operativo

Multiplataforma

Licencia

GNUAGPLv3.0(drivers:licencia
Apache)

[editardatosenWikidata]

1/8

20/9/2015

MongoDBWikipedia,laenciclopedialibre

5.3Bloqueoaniveldedocumento
5.4 Las escrituras no son durables ni
verificables
5.5Problemasdeescalabilidad
6Casosdeuso
7 Manipulacin de datos: colecciones y
documentos
8Lenguajesdeprogramacinsoportados
9InstrumentosdeMongoDB
10Referencias
11Bibliografa
12Enlacesexternos

Historia
El desarrollo de MongoDB empez con la empresa de software 10gen en 2007 cuando estaban
desarrollando una plataforma como servicio (PaaS) similar al conocido Google App Engine.5 En 2009
MongoDB fue lanzado como un producto independiente y publicado bajo la licencia de cdigo abierto
AGPL.6
Enmarzode2011,selanzlaversin1.4yseconsideryacomounabasededatoslistaparasuusoen
produccin.7

Concesindelicenciasysoporte
MongoDB se puede obtener de una forma gratuita bajo la licencia pblica general de Affero (AGPL) de
GNU.8LosdriversparaloslenguajesdeprogramacinestnbajolalicenciadeApache.Adicionalaestas
licencias,10genofreceunalicenciacomercialparaMongoDB.9

Caractersticasprincipales
LosiguienteesunabrevedescripcindelascaractersticasprincipalesdeMongoDB:

ConsultasAdhoc
MongoDB soporta la bsqueda por campos, consultas de rangos y expresiones regulares. Las consultas
pueden devolver un campo especfico del documento pero tambin puede ser una funcin JavaScript
definidaporelusuario.

Indexacin
CualquiercampoenundocumentodeMongoDBpuedeserindexado,aligualqueesposiblehacerndices
secundarios. El concepto de ndices en MongoDB es similar a los encontrados en base de datos
relacionales.

https://es.wikipedia.org/wiki/MongoDB

2/8

20/9/2015

MongoDBWikipedia,laenciclopedialibre

Replicacin
MongoDBsoportaeltipodereplicacinmaestroesclavo.Elmaestropuedeejecutarcomandosdelecturay
escritura.Elesclavopuedecopiarlosdatosdelmaestroyslosepuedeusarparalecturaoparacopiade
seguridad, pero no se pueden realizar escrituras. El esclavo tiene la habilidad de poder elegir un nuevo
maestroencasodequesecaigaelservicioconelmaestroactual.

Balanceodecarga
MongoDBsepuedeescalardeformahorizontalusandoelconceptodeshard.10Eldesarrolladoreligeuna
llaveshard,lacualdeterminacmoserndistribuidoslosdatosenunacoleccin.Losdatossondivididos
enrangos(basadoenlallaveshard)ydistribuidosatravsdemltiplesshard.Unshardesunmaestrocon
uno o ms esclavos. MongoDB tiene la capacidad de ejecutarse en mltiple servidores, balanceando la
cargay/oduplicandolosdatosparapodermantenerelsistemafuncionandoencasoqueexistaunfallode
hardware.LaconfiguracinautomticaesfcildeimplementarbajoMongoDBysepuedenagregarnuevas
mquinasaMongoDBconelsistemadebasededatoscorriendo.

Almacenamientodearchivos
MongoDB puede ser utilizado con un sistemadearchivos, tomando la ventaja de la capacidad que tiene
MongoDB para el balanceo de carga y la replicacin de datos utilizando mltiples servidores para el
almacenamiento de archivos. Esta funcin (que es llamada GridFS11 ) est incluida en los drivers de
MongoDB y disponible para los lenguajes de programacin que soporta MongoDB. Esta base de datos
expone funciones para la manipulacin de archivos y contenido a los desarrolladores. En un sistema con
mltipleservidores,losarchivospuedenserdistribuidosycopiadosentrelosmismosvariasvecesydeuna
formatransparente,deestaformasecreaunsistemaeficientequemanejafallosybalanceodecarga.

Agregacin
La funcin MapReduce puede ser utilizada para el procesamiento por lotes de datos y operaciones de
agregacin.Estafuncinpermitequelosusuariospuedanobtenereltipoderesultadoqueseobtienecuando
seutilizaelcomandoSQLgroupby.

EjecucindeJavaScriptdelladodelservidor
MongoDBtienelacapacidadderealizarconsultasutilizandoJavaScript,haciendoqueestasseanenviadas
directamentealabasededatosparaserejecutadas.

Fragmentacion(Sharding)
Siestasdesarrollandounservicioquesevahaciendopopularolosnivelesdeaccesoabasededatosson
cadavezmsaltos,empezarsanotarquetubasededatosestsiendomartilladaporelexcesodetrficoy
tuservidorestsufriendoporlosaltosnivelesdeprocesamientocontinuoytepodrasverenlanecesidad
deactualizartuinfraestructuraparasoportarlademanda.

https://es.wikipedia.org/wiki/MongoDB

3/8

20/9/2015

MongoDBWikipedia,laenciclopedialibre

Aquentraenjuegolafragmentacin,eselmodoenelquehacemosnuestrabasededatosescalable.En
lugardetenerunacoleccinenunabasededatos,lapondramosenvariasbasesdedatosdistribuidas,de
modoquealahoradeconsultarlosdatosdedichacoleccin,losrecuperemoscomosideunanicabasede
datos se tratase. Mongo se encargar de averiguar de manera transparente en que base de datos se
encuentranlosdatos.
Losfragmentos,estarnformadosporreplicaset,demodoquesicreamostresfragmentos,cadaunodelos
cualestieneunreplicasetcontresservidores,estaramoshablandodeuntotaldenueveservidores.
Sihacemosconsultas,estasserealizarndemaneradistribuidaatravsdeunmduloenrutadorllamado
MongoS que mantendr un pequeo pull de conexiones a los distintos host. Para conocer en que
fragmentodebeconsultarpararecuperardatosdeunacoleccinordenada,seutilizanrangosyshard_key,
demodoquesetrocealacoleccinenrangosylesasignaunid(shard_key),quepuedeserunapartedel
propio documento, y se distribuye en los fragmentos (replica set). De modo que cuando se consulte la
coleccindebemosproporcionarelshard_key.

Principalesproblemas
Noimplementalaspropiedadesacid
Elnoimplementarlaspropiedadesacidgeneraquelabasededatosnoasegureladurabilidad,laintegridad,
laconsistenciayelaislamientorequeridosobligatoriamenteenlastransacciones.Esposiblequeenfuturas
versionesestosesolucione.
Enbaseaestepuntosedetallasloscuatrosiguientes:

Problemasdeconsistencia
Las lecturas estrictamente consistentes ven versiones obsoletas de documentos, tambin pueden devolver
datosincorrectosdelecturasquenuncadeberanhaberocurrido.12

Bloqueoaniveldedocumento
MongoDBbloquealabasededatosaniveldedocumentoantecadaoperacindeescritura.Slosepodrn
haceroperacionesdeescrituraconcurrentesentredistintosdocumentos.

Lasescriturasnosondurablesniverificables
MongoDB retorna cuando todava no se ha escrito la informacin en el espacio de almacenamiento
permanente, lo que puede ocasionar prdidas de informacin. En MongoDB 2.2 se cambia el valor por
defecto para escribir en al menos una rplica, pero esto sigue sin satisfacer la durabilidad ni la
verificabilidad.13

Problemasdeescalabilidad
Tieneproblemasderendimientocuandoelvolumendedatossuperalos100GB.14

https://es.wikipedia.org/wiki/MongoDB

4/8

20/9/2015

MongoDBWikipedia,laenciclopedialibre

Casosdeuso
LabasededatosMongoDBesadecuadaparalossiguientesusos:15
Almacenamientoyregistrodeeventos
Parasistemasdemanejodedocumentosycontenido
ComercioElectrnico
Juegos
Problemasdealtovolumendelecturas
Aplicacionesmviles
AlmacndedatosoperacionaldeunapginaWeb
Manejodecontenido
Almacenamientodecomentarios
Votaciones
Registrodeusuarios
Perfilesdeusuarios
Sesionesdedatos
etc.
Proyectosqueutilizanmetodologasdedesarrolloiterativoogiles
Manejodeestadsticasentiemporeal
MongoDBesutilizadoparaunoovariosdeestoscasosporvariasempresas.16

Manipulacindedatos:coleccionesydocumentos
MongoDBguardalaestructuradelosdatosendocumentostipoJSONconunesquemadinmicollamado
BSON, lo que implica que no existe un esquema predefinido. Los elementos de los datos se denominan
documentos y se guardan en colecciones. Una coleccin puede tener un nmero indeterminado de
documentos.Comparandoconunabasededatosrelacional,sepuededecirquelascoleccionessoncomo
tablasylosdocumentossonregistrosenlatabla.Ladiferenciaesqueenunabasededatosrelacionalcada
registro en una tabla tiene la misma cantidad de campos, mientras que en MongoDB cada documento en
unacoleccinpuedetenerdiferentescampos.Enundocumento,sepuedenagregar,eliminar,modificaro
renombrarnuevoscamposencualquiermomento,17yaquenohayunesquemapredefinido.Laestructura
de un documento es simple y compuesta por keyvalue pairs parecido a las matrices asociativas en un
lenguaje de programacin, esto es debido a que MongoDB sigue el formato de JSON. En MongoDB la
claveeselnombredelcampoyelvaloressucontenido,loscualesseseparanmedianteelusode:,taly
comosepuedeverenelsiguienteejemplo.Comovalorsepuedenusarnmeros,cadenasodatosbinarios
comoimgenesocualquierotrokeyvaluepairs.
{
"_id":ObjectId("4efa8d2b7d284dad101e4bc7"),
"LastName":"PELLERIN",
"FirstName":"Franck",
"Age":29,
"Address":{
"Street":"1chemindesLoges",
"City":"VERSAILLES"
}
}
https://es.wikipedia.org/wiki/MongoDB

5/8

20/9/2015

MongoDBWikipedia,laenciclopedialibre

EnesteejemplosepuedeverqueenelcampoAddresssecontieneotrodocumentoquetieneloscampos
deStreetyCity.

Lenguajesdeprogramacinsoportados
MongoDBtienedriversoficialesparalossiguienteslenguajesdeprogramacin:
C
C++
C#/.NET
Erlang
Haskell
Java
JavaScript
Lisp
Node.js
Perl
PHP
Python
Ruby
Scala

InstrumentosdeMongoDB
Lossiguientescomandospuedenserinstaladosparaelmanejoylaadministracindelsistemadebasede
datos:
mongo:18esunShellinteractivoquepermitealosdesarrolladoresver,insertar,eliminaryactualizar
datosensubasededatos.Estetambinpermiteentreotrasfuncioneslareplicacindeinformacin,
configurarlosShards,apagarlosservidoresyejecutarJavaScript.
mongostat:19 es un instrumento de lnea de comandos que muestra en resumen una lista de
estadsticas de una instancia de MongoDB en ejecucin. Esto te permite visualizar cuantas
inserciones, actualizaciones, eliminaciones, consultas y comandos se han ejecutado, pero tambin
cuantamemoriaestutilizandoycuantotiempohaestadocerradalabasededatos.
mongotop:20esuninstrumentodelneadecomandosqueproveeunmtodoparadarseguimientoa
lacantidaddetiempoqueduraunalalecturaoescrituradedatosenunainstancia.Tambinprovee
estadsticasenelniveldecadacoleccin.
mongosniff:21 es un instrumento de lnea de comandos que provee un sniffing en la base de datos
haciendounsniffingeneltrficodelaredquevadesdeyhaciaMongoDB.
mongoimport/mongoexport:2223esuninstrumentodelneadecomandosquefacilitalaimportacin
exportacin de contenido desde JSON, CSV o TSV. Tambin tiene el potencial de importar o
exportarhaciaotrosformatos.
mongodump/mongorestore:24 es un instrumento de lnea de comandos para la creacin de una
exportacinbinariadelcontenidodelabasededatos.Estoscomandossonutilizadoparalaestrategia
decopiasdeseguridadcuandoseutilizaMongoDB.

https://es.wikipedia.org/wiki/MongoDB

6/8

20/9/2015

MongoDBWikipedia,laenciclopedialibre

Referencias
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.

http://dbengines.com/en/ranking
http://blog.mongodb.org/post/5360007734/mongodbpoweringmtvswebproperties
http://blog.mongodb.org/post/5545198613/mongodbliveatcraigslist
http://blip.tv/mongodb/mongodbatfoursquare3723202
http://www.theregister.co.uk/2011/05/25/the_once_and_future_mongodb/
http://blog.mongodb.org/post/103832439/theagpl
http://blog.mongodb.org/post/472835820/mongodb14readyforproduction
http://blog.mongodb.org/post/103832439/theagpl
http://www.10gen.com/subscription
http://www.mongodb.org/display/DOCS/Sharding
http://www.mongodb.org/display/DOCS/GridFS
Callmemaybe:MongoDBstalereads(https://aphyr.com/posts/322callmemaybemongodbstalereads)
Broken
by
Design:
MongoDB
Fault
Tolerance
::
Hacking,
Distributed
(http://hackingdistributed.com/2013/01/29/mongoft/)
MongoDBmockedafterposting100GBScalingChecklist(http://jaxenter.com/mongodbmockedafterposting
100gbscalingchecklist48377.html)
http://www.mongodb.org/display/DOCS/Use+Cases
http://www.mongodb.org/display/DOCS/Production+Deployments
http://www.mongodbspain.com/wpcontent/uploads/2014/03/MongoDBSpainCheetSheet.pdf
http://www.mongodb.org/display/DOCS/mongo++The+Interactive+Shell
http://docs.mongodb.org/manual/reference/mongostat/
http://docs.mongodb.org/manual/reference/mongotop/
http://docs.mongodb.org/manual/reference/mongosniff/
http://docs.mongodb.org/manual/reference/mongoimport/
http://docs.mongodb.org/manual/reference/mongoexport/
http://docs.mongodb.org/manual/reference/mongodump/

Bibliografa
Banker, Kyle (28 de marzo de 2011), MongoDB in Action (1st edicin), Manning, pp. 375, ISBN
9781935182870

Chodorow, Kristina Dirolf, Michael (23 de septiembre de 2010), MongoDB: The Definitive Guide
(1stedicin),O'ReillyMedia,pp.216,ISBN9781449381561
Pirtle,Mitch(3demarzode2011),MongoDBforWebDevelopment(1stedicin),AddisonWesley
Professional,pp.360,ISBN9780321705334
Hawkins,TimPlugge,EelcoMembrey,Peter(26deseptiembrede2010),TheDefinitiveGuideto
MongoDB:TheNoSQLDatabaseforCloudandDesktopComputing(1stedicin),Apress,pp.350,
ISBN9781430230519

Enlacesexternos
10gen(http://www.10gen.com/)
Pginaoficial(http://www.mongodb.org/)
MongoDBconZanPHP(http://zanphp.com/wiki/Clase_MongoDB)
Hoja de referencia rpida de comandos MongoDB (http://www.mongodbspain.com/wp
content/uploads/2014/03/MongoDBSpainCheetSheet.pdf)
MongoDBSpainComunidadEspaolasobreMongoDB(http://www.mongodbspain.com/es)
https://es.wikipedia.org/wiki/MongoDB

7/8

20/9/2015

MongoDBWikipedia,laenciclopedialibre

Obtenidodehttps://es.wikipedia.org/w/index.php?title=MongoDB&oldid=85204675
Categoras: Basesdedatos Cdigoabierto NoSQL
Estapginafuemodificadaporltimavezel18sep2015alas16:03.
EltextoestdisponiblebajolaLicenciaCreativeCommonsAtribucinCompartirIgual3.0podran
seraplicablesclusulasadicionales.Lanselostrminosdeusoparamsinformacin.
WikipediaesunamarcaregistradadelaFundacinWikimedia,Inc.,unaorganizacinsinnimode
lucro.

https://es.wikipedia.org/wiki/MongoDB

8/8

Você também pode gostar