我的 OrientDB 数据库(版本 1.0.1)中有一个文档,其结构大致如下:
{
"timestamp": "...",
"duration": 665,
"testcases": [
{
"testName": "test01",
"type": "ignore",
"filename": "tests/test1.js"
},
{
"iterations": 1,
"runningTime": 45,
"testName": "test02",
"type": "pass",
"filename": "tests/test1.js"
},
...
{
"testName": "test05",
"type": "ignore",
"filename": "tests/test1.js"
}
]
}
我如何查询整个列表,例如。如果我想查找所有包含“忽略”类型的测试用例的文档?
我尝试了以下查询
select from testresult where testcases['type'] = 'ignore'
但这会导致NumberFormatException
.
select from testresult where testcases[0]['type'] = 'ignore'
有效,但显然只查看每个文档的第一个列表元素。
select from testresult where testcases contains(type = 'ignore')
不提供任何结果,但查询被接受为有效。
更新: 如果测试用例存储为单独的文档而不是嵌入列表,则以下查询按预期工作。
select from testresult where testcases contains (type = 'ignore')