Bien , pues hoy trataré sobre un tema que a muchos Pythoneros como yo les interesa.
MongoDB cuenta con unos drivers que soportan una gran variedad de lenguajes :
C
C++
Erlang
Haskell
Java (and other JVM languages)
Javascript
.NET (C#, F#, PowerShell, ...)
Node.js
Perl
PHP
Python
Ruby
Scala
Para más información sobre los drivers : [Enlace externo eliminado para invitados]
Uno de los más recomendados a la hora de tratar con MongoDB desde python es "Pymongo".
Primero debemos instalar la libreria pymongo , en mi caso uso mint asi que:
Código: Seleccionar todo
sudo apt-get install pymongo
- Conectaremos con la BD
- Veremos las BD's que tenemos creadas
- Veremos las colecciones que tenemos ya creadas
- Crearemos una nueva BD
- Crearemos una nueva colección
- Insertaremos nuevos documentos
- Actualizaremos documentos
- Buscaremos documentos
- Borraremos documentos con remove y con drop
Y como petición especial (me enviarón la duda por MP) y ya que al parecer no puede esperar al próximo tutorial de MongoDB :
- Borraremos bases de datos
Bueno comenzemos importando pymongo :
Código: Seleccionar todo
from pymongo import Connection
Código: Seleccionar todo
conex = Connection('localhost')
Bueno veamos las BD's que ya hay creadas :
conex.database_names()
Ahora creemos una BD nueva :
Código: Seleccionar todo
db = conex.nombredb
Código: Seleccionar todo
collect = db.coleccionnueva
Código: Seleccionar todo
db.collection_names()
Código: Seleccionar todo
collect.insert({"name":"sanko","twitter":"sankoSK"})
Código: Seleccionar todo
collect.update()
Código: Seleccionar todo
collect.find()
Código: Seleccionar todo
collect.remove()
Código: Seleccionar todo
collect.drop()
Y ahora la petición especial , borrar bases de datos...
Aquí me explicaré un poquito más puesto que este comando es nuevo(No lo dimos en el post introductorio a MongoDB).
En MongoDB borrariamos la BD de la siguiente manera:
-Accedemos a la database
-Nos borramos
Código: Seleccionar todo
use nuestrabd
db.dropDatabase()
Código: Seleccionar todo
conex.drop_database('nombredatabase')
Algo así :
Código: Seleccionar todo
# Probaremos los codes , asi que los pondremos todos
# Coded by Sanko
# Haremos lo siguiente :
# -Conectaremos con la BD
# -Veremos las BD's que tenemos creadas
# -Veremos las colecciones que ya tenemos creadas
# -Crearemos una nueva BD
# -Crearemos una nueva coleccion
# -Insertaremos nuevos documentos
# -Actualizaremos documentos
# -Borraremos documentos con remove y drop
# Simple MongoDB-Manager using pymongo - Sanko
from pymongo import Connection
def mongomanager():
conex = Connection('localhost')
def databases():
print "Control de BD's , Que deseas hacer?"
entrada = raw_input("- [1]Visualizar BD's | [2]Crear BD's | [3]Borrar BD's | [4]Home -> ")
if entrada == '1':
var = conex.database_names()
print var
databases()
elif entrada == '2':
name = raw_input("Nombre de la BD que quieres crear -> ")
global db
db = conex.name
databases()
elif entrada == '3':
delname = raw_input("Nombre de la BD que quieres eliminar -> ")
conex.drop_database(delname)
databases()
elif entrada == '4':
mongomanager()
else:
print "Error\n"
mongomanager()
def collections():
print "Control de Colecciones , que deseas hacer?"
entrada = raw_input("- [1]Visualizar colecciones | [2]Crear coleccion | [3]Home -> ")
if entrada == '1':
var = db.collection_names()
print var
collections()
elif entrada == '2':
global collectname
collectname = raw_input("Nombre de la coleccion que quieres crear -> ")
collect = db.collectname
collections()
elif entrada == '3':
mongomanager()
else:
print "error\n"
mongomanager()
def documents():
print "Control de Documentos , que deseas hacer?"
entrada = raw_input("[1]Crear documento | [2]Busqueda de documentos | [3]Eliminar documento | [4]Home -> ")
if entrada == '1':
#Escriba el contenido de esta manera "name":"sanko" por ejemplo.
document = raw_input("Escriba el contenido del doc => ")
collectname.insert({"name":"sankito"})
documents()
elif entrada == '2':
content = raw_input("Parametros del contenido -> ")
var = collectname.find(content)
print var
documents()
elif entrada == '3':
choosedel = raw_input("Desea vaciar el documento(1) o borrar algo especifico(2) -> ")
if choosedel == '1':
collectname.drop()
documents()
elif choosedel == '2':
delcontent = raw_input("Parametros del borrado -> ")
collectname.remove(delcontent)
documents()
else:
print "error\n"
documents()
else:
print "error\n"
mongomanager()
entrada = raw_input("PyMongo Manager => Exit(0) | Control BD's(1) | Control Colecciones(2) | Control de Documentos(3) -> ")
if entrada == '0':
exit
elif entrada == '1':
databases()
elif entrada == '2':
collections()
elif entrada == '3':
documents()
else:
print "Error\n"
mongomanager()
mongomanager()

Para los vagos aca les dejo el code en Pastebin -> [Enlace externo eliminado para invitados]
El code esta creado muy rápidamente por eso tiene unos patrones muy rígidos a vuestra imaginación queda quitar lla necesidad de definir unas variables antes de crear el documento y demas cosas , eso ya se tiene que hacer pensando como sería más cómodo y dedicandole un buen rato.
Espero os sirviera este articulo , como siempre UN ABRAZO.
Saludos , Sanko