OrientDB 强制 属性 类型为字符串

OrientDB force property type to be string

我正在使用 OrientDB 并尝试在插入数据(数百万行)后创建新的 属性。

我正在尝试在 V 上创建 属性 以创建索引,但出现以下错误:

The database contains some schema-less data in the property 'V.ACCOUNT_NO' that is not compatible with the type STRING. Fix those records and change the schema again [ONetworkProtocolHttpDb]

现在部分字段类型是INTEGER,但在我看来,将类型转换为STRING非常容易。
我怎样才能对整个数据执行此操作?

我通过在无模式模式下创建这个简单的结构来尝试你的案例:

这些记录混合了 INTEGERSTRING 类型:

现在您可以使用此查询转换非字符串记录类型:

UPDATE V SET ACCOUNT_NO = ACCOUNT_NO.asString() WHERE ACCOUNT_NO.type() <> 'STRING'

输出:

关于异常,当我尝试在 schema-full 模式下创建类型为 STRING 的新 属性 V.ACCOUNT_NO 时,我正确地得到了同样的错误,这是正确的,因为属性 已存在于数据库中并包含混合类型的记录,尽管处于无模式模式。

转换完所有记录后,您就可以创建新的 属性。

希望对您有所帮助