-
创建集合现在支持启用对文档在允许插入或更新之前必须遵守的 JSON 模式进行验证的选项。此版本中添加的
ModifyCollection()
方法允许更新现有集合的架构。此外,该createCollection()
方法用于重用现有集合的选项已从重命名ReuseExistingObject
为reuseExisting
。模式验证由服务器执行,如果集合中的文档与模式定义不匹配或者服务器不支持验证,则服务器会返回一条错误消息。
如果给定集合已存在于数据库中, 则
createCollection()
失败,除非reuseExisting
在其他选项对象中启用,如以下示例所示:const mysqlx = require('@mysql/xdevapi'); mysqlx.getSession('mysqlx://localhost:33060') .then(sesion => { return session.getSchema('mySchema').createCollection('myCollection', { reuseExisting: true }) });
例如,您还可以使用选项对象来创建服务器端文档验证模式。为此,请在外部验证对象中包含与有效 JSON 架构定义匹配的架构属性。您还应该包括 启用验证和 禁用验证的
level
属性 ,如以下示例所示:STRICT
OFF
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 }) });
BIGINT
Connector/Node.js 未正确解码 类型列的行值 。google-protobuf
我们通过将包含的库升级到版本 3.11.4 来解决此问题 。(漏洞#27570685)