Estoy empezando un hobby (no ingresos) proyecto en Ruby on Rails. He hecho una buena cantidad de desarrollo en Rails usando Postgresql, y quiero hacer una buena imitación de esquema normalizado. Sin embargo, Mongrodb se ve brillante y nuevo. Lo mejor para probar algo nuevo que un hobby proyecto?

Piense de nuevo a cuando usted empezó a usar Mongodb. ¿Qué técnicas se enteró más tarde que te hizo decir «Si yo sólo sabía que cuando empecé!» ¿Qué plugins hizo descubrir que se han utilizado desde el principio, si la hubiera conocido? ¿Qué referencias te gustaría haber tenido marcado?

InformationsquelleAutor Wayne Conrad | 2010-01-23

5 Comentarios

  1. 63

    Definitivamente, me gustaría segundo de la recomendación de MongoMapper si usted va a estar usando MongoDB con Rails. Te advierto, sin embargo, que hay (hasta ahora) no hay documentación aparte de un par de entradas en el blog. Si no estás cómodo a cavar en el código fuente para ver cómo funcionan las cosas, probablemente no es para usted, sin embargo.

    Si usted está trabajando fuera de los Rieles, se lo recomiendo mantenerse alejado de MongoMapper. Porque es el trabajo de MongoDB en algo similar a lo que podemos esperar de un SQL-copia de ORM, realmente no dará una buena idea de la potencia y de la forma de pensar diferente detrás de MongoDB. Pasar algún tiempo jugando con el menor nivel de ruby conductor, e incluso en la consola de javascript.

    La otra cosa que me gustaría recomendar, sobre todo ya que usted menciona saber cómo normalizar un esquema, es no a pensar en MongoDB como base de datos por ahora. La manera de organizar los datos en MongoDB es muy diferente que con una base de datos relacional. Intenta pensar más como un lugar para almacenar y recuperar Ruby hashes. Usted puede hacer algunos relacional cosas con MongoDB, pero me gustaría recomendar que se pegue con sólo la auto-contenida en los documentos mientras usted está tratando de envolver su cabeza alrededor de NoSQL.

    Como para los enlaces de lo que usted debe mirar, me gustaría recomendar encarecidamente la lectura a través de todo lo que puede en la MongoDB sitio. Su documentación es muy buena. En particular, echa un vistazo a la consultas avanzadas, multikey índices, y MapReduce para tener una idea de algunas de las ventajas y fortalezas de una base de datos NoSQL.

  2. 26

    Estoy casi en el mismo escenario. Comenzando un nuevo proyecto con MongoDB. Estoy alrededor de 7 semanas de experiencia. Esto es lo que he encontrado muy útil:

    Uso de Mongoid, en lugar de Mongomapper

    http://mongoid.org/

    La documentación es excelente. En serio, excelente. Le llevará unos 15 minutos a la lectura de toda la documentación y usted tendrá una idea exacta de lo que puede hacer y no puede hacer con Mongoid.

    Mañana, el candidato de lanzamiento de una nueva versión de mongoid será liberado. Va a trae un montón de cosas útiles.

    Estoy usando Rails 3. Para instalar la versión de desarrollo agregar esto a su joya de archivo:

    joya ‘de mongoid,’, «~>2.0.0.beta»

    Versión beta actual es de 20, pero como ya he dicho, mañana hay la versión release candidate.

    También me sugest a unirse al grupo de google así. Tiene poco tráfico y la gente está muy dispuesta a responder a cualquier pregunta. Por ejemplo yo les mostré mi primera DB Modelo de diseño, y me dieron muchas maneras de mejorar eso. El creador de Mongoid responder a sus preguntas demasiado.

    En dos palabras: Gran comunidad.

    Existe este plugin que permite utilizar Maquinista con mongo:

    https://github.com/nmerouze/machinist_mongo

    Funciona bastante bien.

    gem 'machinist_mongo', :require => 'machinist/mongoid', 
    :git => 'http://github.com/nmerouze/machinist_mongo.git',
    :branch => 'machinist2'

    Puede utilizar la Falsificación con el Maquinista. Impresionante mezcla.

    https://github.com/sevenwire/forgery

    Otra cosa que quiero decir. Yo vengo de una relación de la base de datos del mundo, así que esto sonaba muy extraño al principio: Usted puede guardar los archivos en una base de datos mongo.

    De hecho, podría ser más rápido de gestión de los mismos como solíamos hacer. Esto es debido a mongo de apoyo para la fragmentación. La fragmentación significa que usted puede utilizar un clúster de computadoras para servir a la Base de datos Mongo. Ella es perfecta. Maestro-esclavo. Así que usted puede servir en un archivo de varios equipos, cada envío de una porción. Se escala muy bien 🙂

    Esto se hace usando GridFS. http://www.mongodb.org/display/DOCS/GridFS

    Mongoid admite que amo-esclavo config.

    Me pregunta si necesita más información.

    Edición:

    También: http://railscasts.com/episodes/238-mongoid

  3. 8

    1. La consulta no es sensible a mayúsculas

    eq

    "_id": "1da259c70fe3392c3b000002",
    "name": "Dany"
    
    array('name' => 'dany') :: results 0
    array('name' => 'Dany') :: results 1

    2. El último ID insertado:

    $coll->insert($user, true);
    echo (string) $user['_id'];

    3. _id es un MongoId objeto

    Buscar por id:

    $p->findOne(array('_id' => new MongoId( $UID  )), array('proj'));

    Mostrar _id:

    $coll['_id'] = ( string ) $coll['_id'];

    También _id sólo es único por la colección, puede ser diferente en otro servidor

    4. MongoDB tiene soporte para LIMITAR,OFFSET,ORDEN

    para algunos avances en la clasificación puede utilizar el Marco de Agregación.

    5. En SQL es la inyección de Sql en MongoDB es la Matriz de inyección

    Así que cuando escriba algunos datos de uso ( cadena ) o de verificación is_array

    $req = (string) $range['name'];

    6. HDD DOS

    defecto _POST tamaño de 8 MB en PHP, EN Mongo hay límite por documento de 16MB. Así que imagina que Algún usuario parodia eq USER_AGENT CADENA en que la analítica de secuencia de comandos y, a continuación, enviar 16MB por solo insertar.

    7. Hubo algunos problemas en el pasado con MongoDb pero ahora 3.0 es bastante impresionante y estable.

  4. 3

    Aquí es un gran principiante/introducción a MongoDb podcast .RED Rocks –

    http://www.dotnetrocks.com/default.aspx?ShowNum=507

    Mike Dirolf es intereviewed… trabaja en la MongoDb proyecto. Ah, y la calidad de sonido es excelente.

    Mike Dirolf es un Ingeniero de Software en 10gen, donde trabaja en la MongoDB proyecto. Él trabaja principalmente en controladores de cliente para Python y Ruby, pero también se da tiempo para hablar de MongoDB – se ha presentado en EuroPython, Bucle Extraño Conf, RubyEnRails, RuPy y RubyConf así como en los grupos meetup en la Ciudad de Nueva York, Londres, Washington y San Francisco.

  5. 2

    Usted debe definitivamente echa un vistazo a junemakers mongo-mapper: http://github.com/jnunemaker/mongomapper Pero también recomiendo a jugar un poco con el puro Ruby Mongo controlador para ver cómo mongo-asignador de obras bajo el capó. No es muy difícil poner algunos datos en una base de datos Mongo con Ruby.

    Supongo que ya encontró el Rubí Mongo Tutorial. En caso de que no, aquí está el enlace: http://www.mongodb.org/display/DOCS/Ruby+Tutorial

    • Lo creas o no, que no estaba en los enlaces que he en la cola para leer, y parece una buena. Gracias.

Dejar respuesta

Please enter your comment!
Please enter your name here