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.email
、data[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
我可以通过什么方式获取存储为 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.email
、data[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