MongoDB 3.6 suporta
$changeStream
recurso para observar as mudanças em uma coleção. Por exemplo, usando PyMongo compatível com MongoDB 3.6:
for change in db.collection.watch():
print(change)
O ChangeStream retornado é retomado automaticamente quando encontra um erro potencialmente recuperável durante a iteração. O processo de retomada é transparente para o aplicativo e garante que nenhum documento de fluxo de mudança seja perdido.
Outro exemplo para assistir a todas as inserções que estão acontecendo em uma coleção usando PyMongo :
try:
for insert_change in db.collection.watch(
[{'$match': {'operationType': 'insert'}}]):
print(insert_change)
except pymongo.errors.PyMongoError:
# We know it's unrecoverable:
log.error('...')