mysql 使用nodejs时在mariaDB中隐藏Meta对象数据

nqwrtyyt  于 2023-10-15  发布在  Mysql
关注(0)|答案(3)|浏览(94)

我正在记录某些查询的结果,它工作正常,但我注意到有太多的元数据也被记录,我如何才能禁用这些元数据被登录?
screenshot

const pool = mariadb.createPool({
        host: 'localhost',
        port: 3306,
        user: 'example',
        password: 'pass',
        waitForConnections: true,
        connectionLimit: 10
    });

    async function asyncFunction () {
        let conn;
        try {
            conn = await pool.getConnection();
            const queryResult = await conn.query('select * from test.sb__user where id=94');
            console.log(queryResult); // [ {val: 1}, meta: ... ]
        } catch (err) {
            throw err;
        } finally {
            if (conn) return conn.end();
        }
    }
rqmkfv5c

rqmkfv5c1#

我使用了delete关键字来删除Meta,遵循Tomas B的示例,但使用了Vanilla JS。

delete queryResult.meta;
xa9qqrwz

xa9qqrwz2#

使用lodash从queryResult数组中排除Meta值:

_.difference(queryResult, ['meta'])
8xiog9wr

8xiog9wr3#

从2023年开始,您可以使用metaAsArray选项。

const mariadb = require('mariadb');
const pool = mariadb.createPool({
    host: 'mydb.com', 
    user:'myUser', 
    password: 'myPassword',
    connectionLimit: 5,
    metaAsArray: false //hide 'meta' fields
});

const connection = await pool.getConnection()

引用自docs,第Other Options章。

相关问题