/ / Node.js & MongoDB: Щоразу зберігати колекції або захоплювати їх? - node.js, mongodb, оптимізація

Node.js & MongoDB: зберігання колекцій або захоплення їх кожного разу? - node.js, mongodb, оптимізація

Найкращі практики / запитання щодо оптимізації: При обробці запитів, які використовують кілька різних колекцій у моїй БД Mongo, на запит ... чи ефективно / неефективно захоплювати його за допомогою «суворої» форми, використовуючи офіційний драйвер MongoDB Node.js, кожного разу, коли робиться запит? Або я повинен зберегти його, зберігаючи посилання на колекцію для всіх майбутніх запитів? Чи є якась (непередбачена мною) користь від того, щоб тримати під рукою об’єкти колекції Монго, якими я найчастіше користуюся? Або є певний ризик, коли я зберігаю їх у змінному в моєму додатку Node.js? Я запитую як з точки зору ефективності, так і з точки зору непередбачених наслідків.

Відповіді:

0 для відповіді № 1

Якщо ви отримуєте колекцію з активним строгим режимом,драйвер виконає кілька кроків, щоб визначити, чи справді існує колекція, яку ви намагаєтесь отримати. Наскільки я бачу, накладні витрати на це - додатковий запит до бази даних.

Отже, ви можете зробити дві речі:

  • якщо ви впевнені, що колекція існує, перейдіть в суворий режим; я думаю, що накладні витрати просто db.collection("yourcollection") (без зворотного виклику, в несуворому режимі) мінімальний;
  • отримати колекцію в суворому режимі, зберігати їїдесь у всьому світі (або "доступно"), і використати його повторно. Я думаю, що єдиним ризиком є ​​вилучення колекції з бази даних, поки у вашому додатку все ще є посилання на неї, але ризик, ймовірно, міг би включати лише те, що будь-які запити можуть провалитися;

Я повинен визнати, що я не дуже добре знайомий з драйвером MongoDB (сам користувач Mongoose), тому мої думки в основному базуються на прочитанні його коду та документів;)