miércoles, 13 de octubre de 2010

MongoDB

Escuchando un poco de Javier Malosetti, hice un trabajo freelance con mongoDB y ruby. La verdad me costo un toque, no tengo mayor experiencia con estas tecnologías. Pero quede maravillado con mongoDb, una base noSQL que esta de moda, es Open Source y la bautizaron los que saben como la mysql de las bases noSQL, muy simple.

Mongodb es una base documental que guarda los datos con un formato “like json” que se llama bson; este formato es un mapa clave valor el cual se puede representar de diferentes maneras en diferentes lenguajes:

JavaScript: {"foo" : "bar"}
Perl: {"foo" => "bar"}
PHP: array("foo" => "bar")
Python: {"foo" : "bar"}
Ruby: {"foo" => "bar"}
Java: DBObject obj = new BasicDBObject("foo", "bar");

Para instalarlar MongoDb solo hay que descomprimir un tar o zip depende de que sistema operativo elijan luego crear el directorio data

C:\> mkdir data\db

Y listo!! Se van a la carpeta bin y ejecutan mongod.exe/.sh (según el S.O.) y de esta forma levantan el servicio, seria como levantar el motor de base de datos.

Bueno ahora podemos probarlo ejecutando mongo.exe/.sh se abrira un administrador símil a un software de consulta de base de datos. Por defecto mongo se ejecuta sin seguridad y el software de consulta esta en la base test.

C:\> cd \my_mongo_dir\bin 
C:\my_mongo_dir\bin
> mongo
> // the mongo shell is a javascript shell connected to the db
> 3+3
6
> db
test
> // the first write will create the db:
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ _id : ..., a : 1 }
> use mydb
switched to db mydb


Vamos a insertar datos con ruby. Para la próxima lo hacemos con Java.

class MongoDBInsert

def initialize(host, port, db, user_name="", password="")

@db = Mongo::Connection.new(host, port).db(db)

# @db.authenticate(user_name, password)

end


def insert(objetos)

coll = @db.collection("objetos")

objetos.each do |objeto|

coll.insert(objeto.index => objeto.to_str)

end

end

end


if __FILE__ == $0

...

mongoDBInsert = MongoDBInsert.new("localhost", 27017, "test")

mongoDBInsert.insert(objects)

end


Dejo links:

http://www.mongodb.org/

http://www.mongodb.org/display/DOCS/Quickstart

http://www.mongodb.org/display/DOCS/Home

Para la próxima insertamos usando java!!