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

时间:2015-03-15 04:17:15

标签: json database select orientdb

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

例如, 我有一个类FILE有一个名为'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'],但是徒劳无功。
任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

我相信你应该在嵌入时将数据字段定义为String。请尝试以下方法。

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