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

Select query to get fields within JSON in orientdb

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

例如, 我有一个 class 文件,其中包含一个名为 '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 Error on reading rid with value '[{"email":"my@domain.com"}]' [OSQLMethodField]

我已经尝试在投影中给出data.emaildata[email]data['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