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')