Documentation Home
MySQL 连接器/ODBC 发行说明  / MySQL 连接器/ODBC 版本 8.0 中的更改  /  MySQL Connector/Node.js 8.0.21 的变化(2020-07-13,正式发布)

MySQL Connector/Node.js 8.0.21 的变化(2020-07-13,正式发布)

添加或更改的功能

  • 创建集合现在支持启用对文档在允许插入或更新之前必须遵守的 JSON 模式进行验证的选项。此版本中添加的 ModifyCollection()方法允许更新现有集合的架构。此外,该createCollection() 方法用于重用现有集合的选项已从重命名ReuseExistingObjectreuseExisting

    模式验证由服务器执行,如果集合中的文档与模式定义不匹配或者服务器不支持验证,则服务器会返回一条错误消息。

    如果给定集合已存在于数据库中, 则createCollection()失败,除非 reuseExisting在其他选项对象中启用,如以下示例所示:

    const mysqlx = require('@mysql/xdevapi');
    
    mysqlx.getSession('mysqlx://localhost:33060')
        .then(sesion => {
            return session.getSchema('mySchema').createCollection('myCollection', { reuseExisting: true })
        });

    例如,您还可以使用选项对象来创建服务器端文档验证模式。为此,请在外部验证对象中包含与有效 JSON 架构定义匹配的架构属性。您还应该包括 启用验证和 禁用验证的level属性 ,如以下示例所示: STRICTOFF

    const mysqlx = require('@mysql/xdevapi');
    const validation = { schema: { type: 'object', properties: { name: { type: 'string' } } }, level: mysqlx.Schema.ValidationLevel.STRICT };
    
    mysqlx.getSession('mysqlx://localhost:33060')
        .then(sesion => {
            return session.getSchema('mySchema').createCollection('myCollection', { validation })
        });

    相同的level属性逻辑适用于 modifyCollection(). STRICT 此示例显示如何使用验证级别 在现有集合上启用 JSON 模式(或更新它,如果它已经存在) :

    const mysqlx = require('@mysql/xdevapi');
    const validation = { schema: { type: 'object', properties: { name: { type: 'string' } } }, level: mysqlx.Schema.ValidationLevel.STRICT };
    
    mysqlx.getSession('mysqlx://localhost:33060')
        .then(sesion => {
            return session.getSchema('mySchema').modifyCollection('myCollection', { validation })
        });

修正错误

  • BIGINTConnector/Node.js 未正确解码 类型列的行值 。google-protobuf我们通过将包含的库升级到版本 3.11.4 来解决此问题 。(漏洞#27570685)