/ / Node.js & MongoDB: Garder des collections ou les récupérer à chaque fois? - node.js, mongodb, optimisation

Node.js & MongoDB: Garder des collections ou les récupérer à chaque fois? - node.js, mongodb, optimisation

Meilleure pratique / question d'optimisation: Lors du traitement de requêtes qui utilisent plusieurs collections différentes dans ma base de données Mongo, par requête ... est-il efficace / inefficace de la récupérer avec le formulaire "strict", à l'aide du pilote officiel MongoDB Node.js, chaque fois qu'une demande est faite? Ou dois-je l'enregistrer en conservant la référence de la collection pour toutes les demandes futures? Y at-il un avantage (non prévu par moi) à garder les objets de collection Mongo que j’utilise le plus souvent à portée de main? Ou puis-je courir un risque en les faisant enregistrer dans une var dans mon application Node.js? Je pose la question du point de vue de la performance et du point de vue des conséquences imprévues.

Réponses:

0 pour la réponse № 1

Si vous obtenez une collection avec le mode strict actif,le pilote effectuera certaines étapes pour déterminer si la collection que vous essayez d'extraire existe réellement. Pour autant que je sache, le temps système pour cela est une requête de base de données supplémentaire.

Vous pouvez donc faire deux choses:

  • si vous êtes sûr que la collection existe, tournez le mode strict; je pense que la surcharge de juste db.collection("yourcollection") (sans rappel, en mode non strict) est minimal;
  • récupère la collection en mode strict, stocke-laquelque part globalement (ou "accessible"), et le réutiliser. Je pense que le seul risque encouru est le moment où une collection est supprimée de la base de données alors que votre application y fait toujours référence, mais le risque impliquerait probablement uniquement que toutes les requêtes échouent.

Je dois admettre que je ne suis pas très familiarisé avec le pilote MongoDB (moi-même utilisateur de Mongoose), mon avis est donc principalement basé sur la lecture de son code et de sa documentation;)