选择查询以获取orientdb中JSON内的字段

选择查询以获取orientdb中JSON内的字段,json,database,select,orientdb,Json,Database,Select,Orientdb,我可以通过什么方式获取存储为OrientDB类字段的JSON中的字段 比如说,, 我有一个类文件,它有一个名为“data”的字段 orientdb {db=baasbox}> select data from FILE ----+---------------------- # | data ----+---------------------- 0 | {"email":"my@domain.com"} ----+----------------

我可以通过什么方式获取存储为OrientDB类字段的JSON中的字段

比如说,, 我有一个类文件,它有一个名为“data”的字段

orientdb {db=baasbox}> select data from FILE   
----+----------------------  
#   |       data  
----+----------------------  
0   | {"email":"my@domain.com"}  
----+----------------------  
字段“data”是一个JSON,我想得到“email”字段:使用如下内容:

orientdb {db=baasbox}> select data.email from FILE   
----+----------------------  
#   |       data.email  
----+----------------------  
0   |     my@domain.com  
----+----------------------  
上述sql不起作用,并出现以下错误:
SEVE读取值为“[{”email:”的rid时出错my@domain.com“}]'[OSQLMethodField]

我已经试过在投影中提供
数据.email
数据[email]
数据['email']
,但没有成功。

感谢您的帮助

我相信您在应该嵌入数据字段时将其定义为字符串。尝试以下方法

create class File

create property File.data EMBEDDED

insert into File set data = {"email":"my@domain.com"}  

select data.email from File
更新:

对于2.0之前的OrientDB版本:

create class File
create property File.data EMBEDDED
insert into File set data = {"@type":"d", "email":"my@domain.com"} 
select data.email from File

没用。orientdb{db=mydb}>插入文件集数据={“电子邮件”:my@domain.com}错误:com.orientechnologies.orient.core.exception.OCommandExecutionException:执行命令时出错:sql.insert into file set data={“电子邮件”:my@domain.com"}错误:com.orientechnologies.orient.core.exception.OValidationException:字段“file.data”已声明为嵌入,但使用了不兼容的类型。值:{email=my@domain.com}你能提供解释这一点的文档参考吗?我让它工作了!!但它要求属性“data”不具有任何类型(嵌入)。也就是说,在删除命令“create property File.data EMBEDDED”时,它开始工作。你能把它从你的帖子中删除,这样我就可以批准它了吗?完成:)但它应该可以工作。从2.0开始,不要求使用“@type”和“@class”(请参阅)。您正在使用哪个版本的OrientDB?它是OrientDB 1.7.10。我不明白“@type”和“@class”与不使用“create property”命令有什么关系。