5. • Sufres de “Nubemania”
• Necesitasuna escusa para hacer lo que los chicos cool
hacen. (PELIGROSO!!!)
• Tienes curiosidad.
• Odias MySQL, no crees que Postgres sea mas rapido y no
te alcanza para licencias de Oracle.
• Tus
datos son principalmente referenciados por ID sin la
necesidad de “JOINS” muy complejos.
• Manejas una cantidad de datos no trivial y la replicacion y
escalabilidad de MySQL te dan miedo.
8. INTRO Y COMPARACION CON COUCHDB
• Super Rapido? • Super Rapido?
• Conexion por drivers • REST (lento pero cool)
• Documento/Colleccion • Vistas / Documentos
• Consultas e indices dinamicos • Consultas e indices estaticos :(
• Replicado • Replicado
• A prueba de fallos? • A prueba de fallos?
• Map / Reduce (muy pronto) • Map / Reduce
9. BUENO PARA
• Sitios web en general
• Caching
• Alto volumen, bajo valor
• Gran escalabilidad
• Guardar estructuras de los objetos en JSON o BSON
10. NO TAN BUENO PARA
• Alto volumen de transacciones
• Inteligencia de Negocios (BI)
• Cosas que requieran SQL
12. BASE DE DATOS
• mismo concepto que en MySQL (Repositorio de datos)
• formado de colecciones
• creadas al vuelo al ser instanciadas :D
13. COLECCIÓN
• Tabla pero sin esquema :D!!!!!!!!!
• Agrupa datos en menores sets (velocidad, couch no hace
esto.)
• Cada entidad de primer nivel tiene su colección.(usuarios,
artículos, etc.)
• Indexable por una o mas llaves (Máximo 10 por el momento)
14. DOCUMENTO
• Almacenado como parte de una colección.
• Pueden tener un campo _id que sirve como llave primaria.
• Se manejan tres tipos de relaciones:
• Documento Embebido (Subdocument)
• Asociación.
• Referencia a otra bd.
19. NUNEMAPPER
(MONGOMAPPER)
• Mongo no es MySQL (No emula ORM atado a SQL)
• DSL que abstrae a Mongo pero no lo esconde.
• Aprendes Mongo mientras lo usas.
• Es muy divertido de usar y refrescante!
• Mas parecido a Datamapper.
20. CARACTERISTICAS
• Typecasting(El tipo puede • Creacion y actualizacion
ser una clase definida por ti!) simple or multiple.
• Callbacks
(after_create, • Delete y Destroy y _all
before_destroy etc.)
• Find: id, ids, :all, :first, :last
• Validaciones (como
extension) • Manejo de asociaciones y
sub documentos.
• Conexióny base de datos
por documento.
21. EJEMPLOS
class User
include MongoMapper::Document
key :name, String, :required => true, :length => 5..100
key :email, String, :required => true, :index => true
key :age, Integer, :numeric => true
key :active, Boolean, :default => true
key :address, Address
many :articles
end
class Address
include MongoMapper::EmbeddedDocument
key :street, String
key :city, String
key :state, String, :length => 2
key :zip, Integer, :numeric => true, :length => 5
end