OrientDB强制属性类型为字符串

OrientDB强制属性类型为字符串,orientdb,orientdb-2.1,Orientdb,Orientdb 2.1,我正在使用OrientDB并尝试在插入数据(数百万行)后创建新属性 我试图在V上创建属性以创建索引,但出现以下错误: 数据库在属性中包含一些无架构的数据 与类型字符串不兼容的“V.ACCOUNT_NO”。修好那些 再次记录并更改架构[OneWorkProtocolHttpDB] 现在,字段类型的一部分是整数,但在我看来,将该类型转换为字符串非常容易。 如何处理整个数据?我尝试了您的案例,在无模式模式下创建了此简单结构: 这些记录混合了整数和字符串类型: 现在,您可以使用以下查询转换not s

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

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

数据库在属性中包含一些无架构的数据 与类型字符串不兼容的“V.ACCOUNT_NO”。修好那些 再次记录并更改架构[OneWorkProtocolHttpDB]

现在,字段类型的一部分是整数,但在我看来,将该类型转换为字符串非常容易。

如何处理整个数据?

我尝试了您的案例,在无模式模式下创建了此简单结构:

这些记录混合了
整数
字符串
类型:

现在,您可以使用以下查询转换not string记录类型:

UPDATE V SET ACCOUNT_NO = ACCOUNT_NO.asString() WHERE ACCOUNT_NO.type() <> 'STRING'
UPDATE V SET ACCOUNT\u NO=ACCOUNT\u NO.asString()其中ACCOUNT\u NO.type()为'STRING'
输出:

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

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


希望对您有所帮助

我在无模式模式下创建了此简单结构,尝试了您的案例:

这些记录混合了
整数
字符串
类型:

现在,您可以使用以下查询转换not string记录类型:

UPDATE V SET ACCOUNT_NO = ACCOUNT_NO.asString() WHERE ACCOUNT_NO.type() <> 'STRING'
UPDATE V SET ACCOUNT\u NO=ACCOUNT\u NO.asString()其中ACCOUNT\u NO.type()为'STRING'
输出:

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

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


希望有帮助

嗨,你有机会尝试我的解决方案吗?嗨,你验证过我的解决方案在你的案例中是否正确吗?嗨,你有机会尝试我的解决方案吗?嗨,你验证过我的解决方案在你的案例中是否正确吗?