2012-03-16 18 views
13

Necesito ejecutar MongoDB con node.js tanto localmente como en servicios en la nube como Nodester y MongoHQ. Me gustaría tener dependencias mínimas, por ejemplo, realmente no quiero usar Express o Mongoose en este momento. Básicamente, me gustaría ejecutarlo como "directamente" como sea posible¿Cuál es la mejor manera de usar mongoDB con node.js?

He instalado localmente usando MacPorts Mongo, y luego usando el módulo Mongojs hablar a ella desde mi aplicación Node.js. Eso funciona bien, se ejecuta localmente. Pero veo que Mongojs supuestamente está envolviendo el módulo mongo-native. ¿Eso lo hace redundante con la instalación Macports de Mongo, o es mongo-native solo un cliente? ¿Y Mongojs trabajará para hablar con una base de datos alojada en MongoHQ, desde una aplicación alojada en Nodester? Finalmente, ¿es Mongojs una buena opción, o hay una mejor?

Supongo que hay tantas cosas interconectadas que me confunden y me gustaría una explicación de cómo encajan todas y cuáles son las prácticas estándar. Por lo que vale, esto es para un proyecto personal, pero me gustaría hacerlo público, así que necesito que funcione con servicios de alojamiento baratos o gratuitos.

+3

Mongo-native es un controlador Node.js para MongoDB y es diferente del mongo binary (que para uno, se ejecuta en SpiderMonkey de manera predeterminada y no hace IO asincrónico) que viene con el paquete 10gen oficial. Por lo tanto, no es redundante y actúa como un cliente desde la perspectiva del servidor de la base de datos. – Ren

+0

Supongo que es una buena idea evitar demasiadas dependencias, pero NPM hace que sea relativamente fácil administrar dependencias y en el mundo NodeJS ... ¡las dependencias suceden! Solo lo menciono porque he usado Mongoose un poco y es increíblemente indoloro. Para mí personalmente, los beneficios superan con creces los riesgos. –

+0

Entiendo lo que quiere decir @JonathanRowny, creo que tiendo a intentar comenzar un poco más cerca del metal, así que entiendo lo que estoy haciendo mejor. Supongo que realmente es menos una cuestión de dependencias, y más de capas. Una vez que haga un pequeño proyecto usando Mongo un poco más directamente, analizaré el uso de Mongoose para el próximo proyecto. Para mí, Mongojs parece ser el nivel correcto de abstracción, pero no parece muy popular, así que podría omitirlo y usar mongo-native. – rob

Respuesta

15

Depende de sus necesidades. Soy el autor del controlador nativo mongodb y diría que si no tiene necesidades de rendimiento muy específicas, la mangosta podría tener sentido, ya que le permite hacer un poco de modelado de sus documentos y está más cerca del concepto de ODM. . Para el contenedor que estás usando, hay un montón de ellos. Echar un vistazo a

http://mongodb.github.io/node-mongodb-native/

y

https://github.com/christkv/node-mongodb-native

He intentado añadir todos los proyectos que podrían ser relevantes y cada vez que generar los documentos que tira en las Estadísticas para marcar los proyectos como activo o no.

Si necesita un rendimiento sin procesar, use mi controlador directamente o una de las envolturas delgadas como mongojs o mongoskin.

Estoy hablando con Aaron, uno de los escritores de mangostas acerca de tal vez tratando de crear un marco a mitad de camino entre la mangosta y el controlador, pero es solo una charla en este momento.

+3

¿Alguna actualización de su charla con Aaron? –

Cuestiones relacionadas