I have application using nodejs and mongodb. I have used mongoose for ODM. Now i want to log all the queries that mongoose fire during the whole application.
How to log these?
The Mongoose Query class provides a chaining interface for finding, updating, and deleting documents.
mongoose .find() method returns object with unwanted properties. 12. Model.findOne not returning docs but returning a wrapper object.
Mongoose is an Object Data Modeling (ODM) library for MongoDB and Node. js. It manages relationships between data, provides schema validation, and is used to translate between objects in code and the representation of those objects in MongoDB.
In MongoDB, projection means selecting only the necessary data rather than selecting whole of the data of a document. If a document has 5 fields and you need to show only 3, then select only 3 fields from them.
You can enable debug mode like so:
mongoose.set('debug', true);
or add your own debug callback:
mongoose.set('debug', function (coll, method, query, doc [, options]) { //do your thing });
This will log all executed collection methods and their arguments to the console.
You can use the following format:
mongoose.set("debug", (collectionName, method, query, doc) => { console.log(`${collectionName}.${method}`, JSON.stringify(query), doc); });
or any other logger of your choice:
mongoose.set("debug", (collectionName, method, query, doc) => { logger(`${collectionName}.${method}`, JSON.stringify(query), doc); });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With