/ / Node.js y MongoDB: ¿Mantener colecciones o tomarlas cada vez? - node.js, mongodb, optimización

Node.js & MongoDB: ¿Mantener colecciones o capturarlas cada vez? - node.js, mongodb, optimización

Mejores prácticas / pregunta de optimización: Al procesar solicitudes que utilizan algunas colecciones diferentes en mi Mongo DB, por solicitud ... ¿es eficiente / ineficiente tomarlo con el formulario "estricto", utilizando el controlador oficial MongoDB Node.js, cada vez que se realiza una solicitud? ¿O debería guardarlo, manteniendo la referencia de recopilación para todas las solicitudes futuras? ¿Hay algún beneficio (no previsto por mí) para mantener a mano los objetos de la colección Mongo que uso con más frecuencia? ¿O hay algún riesgo que corro al guardarlos en una var en mi aplicación Node.js? Estoy preguntando tanto desde el punto de vista del rendimiento como desde el punto de vista de las consecuencias imprevistas.

Respuestas

0 para la respuesta № 1

Si obtiene una colección con el modo estricto activo,el controlador realizará algunos pasos para determinar si la colección que está tratando de recuperar existe realmente. Hasta donde puedo ver, la sobrecarga para esto es una solicitud de base de datos adicional.

Entonces puedes hacer dos cosas:

  • si está seguro de que la colección existe, cambie el modo estricto; creo que la sobrecarga de solo db.collection("yourcollection") (sin devolución de llamada, en modo no estricto) es mínimo;
  • obtener la colección en modo estricto, almacenarlaen algún lugar a nivel mundial (o "accesible") y reutilícelo. Creo que el único riesgo involucrado es cuando una colección se elimina de la base de datos mientras su aplicación todavía tiene una referencia, pero el riesgo probablemente solo implicaría que cualquier consulta podría fallar;

Tengo que admitir que no estoy muy familiarizado con el controlador MongoDB (usuario de Mongoose), por lo que mis opiniones se basan principalmente en leer su código y los documentos;)