OrientDB 强制属性类型为字符串

Dor*_*hen 2 orientdb orientdb-2.1

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

我试图在 V 上创建属性以创建索引,但收到以下错误:

数据库在属性“V.ACCOUNT_NO”中包含一些与 STRING 类型不兼容的无架构数据。修复这些记录并再次更改架构 [ONetworkProtocolHttpDb]

现在部分字段类型是 INTEGER,但在我看来,将类型转换为 STRING 非常容易。
我该如何处理整个数据?

Luc*_*caS 5

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

在此输入图像描述

这些记录是INTEGER以下STRING类型的组合:

在此输入图像描述

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

UPDATE V SET ACCOUNT_NO = ACCOUNT_NO.asString() WHERE ACCOUNT_NO.type() <> 'STRING'
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

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

转换所有记录后,您将能够创建新的属性。

在此输入图像描述

希望能帮助到你