में एक एम्बेडेड सूची का पता कर मैं अपने OrientDB डेटाबेस में एक दस्तावेज है मोटे तौर पर इस तरह की एक संरचना के साथ:, (संस्करण 1.0.1) OrientDB
{
"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')
कोई परिणाम नहीं प्रदान करता है, लेकिन क्वेरी को मान्य के रूप में स्वीकार किया जाता है।
अद्यतन: , के रूप में इरादा अगर testcases अलग दस्तावेज़ के रूप में के बजाय एक एम्बेडेड सूची के रूप में जमा हो जाती है निम्न क्वेरी काम करता है।
select from testresult where testcases contains (type = 'ignore')
मेरे पास वही समस्या थी जो आपने किया था। आप प्रश्न में अपना अपडेट पोस्ट कर सकते हैं और इसे स्वीकार कर सकते हैं। यही वह था जिसे मैं ढूंढ रहा था। –
@ डेविड लैबर्ज: सुझाव के लिए धन्यवाद। सवाल इतना पुराना है कि मैं स्पष्ट रूप से इसके संदर्भ को पूरी तरह से याद नहीं करता, इसलिए मैं उस युद्धाभ्यास के बारे में थोड़ा असहज महसूस करूंगा। मुझे यह भी एहसास है कि कम से कम ओरिएंट डीबी के दस्तावेज के अनुसार मेरा प्रारंभिक दृष्टिकोण काम करना चाहिए, इसलिए लोगों को उपरोक्त में अपने डेटाबेस को पुन: स्थापित करने के लिए प्रोत्साहित करना गलत लगेगा। – Henrik