使用适用于 Node JS 的 mongodb 本机驱动程序记录所有查询

Posted

技术标签:

【中文标题】使用适用于 Node JS 的 mongodb 本机驱动程序记录所有查询【英文标题】:Log all queries using mongodb native driver for Node JS 【发布时间】:2020-03-05 09:27:51 【问题描述】:

我对 MongoDB 比较陌生。起初我使用猫鼬,但现在我决定放弃它。我立即遇到了以下问题:我无法理解如何将所有执行的查询打印到控制台。

在 mongoose 中,这可以像编写 mongoose.set('debug', true) 一样简单,但是如何使用本机驱动程序来做到这一点?

我在文档中阅读了有关 Logger 的信息,但输出对我来说似乎完全不可读。是否可以调整输出或者我应该以某种方式解析它?

【问题讨论】:

【参考方案1】:

您应该使用 mongo 的 Logger 类(参见 the official API doc):

const connect = async () => 
    console.log("Connecting to database...");

    try 
        let client = await MongoClient.connect(uri, opts);
        console.log("Database connected.");

        Logger.setLevel("debug");
        console.log("MongoDB Logger set to DEBUG");
     catch (e) 
        console.log("ERROR: " + e.message);
    
;

Logger 类有多个选项(信息、调试、错误)。他们将记录不同类型的数据库操作/事件。

【讨论】:

以上是关于使用适用于 Node JS 的 mongodb 本机驱动程序记录所有查询的主要内容,如果未能解决你的问题,请参考以下文章

基于NodeJS+Express+mongoDB+Bootstrap的全栈式工程化开发前后端分离博客系统实战

适用于 Node.js 的 MySQL 驱动程序适用于 Windows?

如何在 Node.js 中高效/快速地执行数组连接,类似于 MongoDB $lookup?

nodejs安全吗

node.js如何配置mongodb连接池?

无法使用 Node.js Express MongoDB Mongoose CoffeeScript 发布