212 votes

Comment écouter les modifications apportées à une collection MongoDB ?

Je suis en train de créer une sorte de système de file d'attente pour les travaux en arrière-plan avec MongoDB comme magasin de données. Comment puis-je "écouter" les insertions dans une collection MongoDB avant de créer des travailleurs pour traiter le travail ?

Dois-je interroger toutes les quelques secondes pour voir s'il y a des changements par rapport à la dernière fois, ou existe-t-il un moyen pour mon script d'attendre que les insertions se produisent ?

Il s'agit d'un projet PHP sur lequel je travaille, mais n'hésitez pas à répondre en Ruby ou dans un autre langage.

2 votes

Change Streams a été ajouté à MongoDB 3.6 pour répondre à votre scénario. docs.mongodb.com/manual/changeStreams De plus, si vous utilisez MongoDB Atlas, vous pouvez tirer parti des déclencheurs Stitch qui vous permettent d'exécuter des fonctions en réponse aux insertions/mises à jour/suppressions/etc. docs.mongodb.com/stitch/triggers/overview Il n'est plus nécessaire d'analyser l'oplog.

0voto

gotqn Points 4247

Après la version 3.6, il est possible d'utiliser les types de déclencheurs de base de données suivants :

  • déclencheurs basés sur des événements - utiles pour mettre à jour automatiquement les documents connexes, notifier les services en aval, propager les données pour prendre en charge des charges de travail mixtes, l'intégrité des données et l'audit.
  • Déclencheurs programmés - utiles pour la récupération et la propagation des données, l'archivage et les charges de travail analytiques.

Connectez-vous à votre compte Atlas et sélectionnez Triggers et ajouter un nouveau déclencheur :

enter image description here

Développez chaque section pour plus de paramètres ou de détails.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X