2016-09-30 2 views
0

Я хочу отслеживать (путем входа в другую коллекцию) в любой операции Create, Update или Delete, которая происходит в Mongodb.«Hook» to Save function Globally - что-то вроде события post

Мое существующее приложение (NodeJs) использует mongoose для репозитория. Я пытаюсь войти в журнал каждый раз, когда что-то изменилось (CUD) в БД. Простое решение заключалось бы в том, чтобы добавлять журналы везде, где я модифицирую db, но у меня так много методов. Интересно, могу ли я «зацепиться» за сообщение «Сохранить глобально»? что-то вроде промежуточного программного обеспечения для Mongo.

+0

Если у вас есть выгнув его, вы получите много решений для этого. – Sachin

+0

спасибо за полезный комментарий. – UshaP

ответ

1

Использование ниже крючка на схеме, на которой вы хотите войти (это только для сохранения функции)

schema.post('save', function(next){ 
     //log data using this here 
     next(); 
     }) 

Обратитесь к этой ссылке: http://mongoosejs.com/docs/middleware.html

согласно этой ссылке:

> use myDb 
switched to db myDb 
> db.getProfilingLevel() 
0 
> db.setProfilingLevel(2) 
{ "was" : 0, "slowms" : 1, "ok" : 1 } 
> db.getProfilingLevel() 
2 
> db.system.profile.find().pretty() 

ссылка: MongoDB logging all queries

+0

Спасибо. Это на самом деле очень приятно. Я больше думал о том, чтобы использовать mongo optlog ... любую мысль об этом? – UshaP

+0

Я не знаю, есть ли какой-либо другой способ в mongodb для хранения определенных операций, но поскольку я знаю, что mongodb создает журналы для каждой операции, происходит на db. поэтому вы можете регистрировать все запросы. проверить обновление. – Sachin