मैं उपयोग कर रहा हूँ क्या एक में शामिल होने के दृश्य बनाने के लिए एक आम चाल हो रहा है:एक कंपाउंड कॉच डीबी कुंजी के लिए अधिकतम मूल्य क्या है?
// a Customer has many Orders; show them together in one view:
function(doc) {
if (doc.Type == "customer") {
emit([doc._id, 0], doc);
} else if (doc.Type == "order") {
emit([doc.customer_id, 1], doc);
}
}
मैं जानता हूँ कि मैं एक ही customer
और सभी संबंधित Order
रों प्राप्त करने के लिए निम्न क्वेरी का उपयोग कर सकते हैं:
?startkey=["some_customer_id"]&endkey=["some_customer_id", 2]
लेकिन अब मैंने अपनी क्वेरी बहुत मेरे व्यू कोड को बारीकी से बांध लिया है। क्या कोई मूल्य है जहां मैं अपना "2
" डाल सकता हूं और अधिक स्पष्ट रूप से कहता हूं, "मुझे सब कुछ इस ग्राहक से जुड़ा हुआ है"? मुझे लगता है मैं
?startkey=["some_customer_id"]&endkey=["some_customer_id", {}]
देखा है लेकिन मुझे यकीन है कि {}
कुछ है सॉर्ट करने के लिए किसी और के बाद सब कुछ नहीं कर रहा हूँ।
जॉइन विधि के लिए cmlenz पर क्रेडिट। CouchDB wiki page on collation से
आगे स्पष्टीकरण:
क्वेरी
startkey=["foo"]&endkey=["foo",{}]
ऐसे["foo","bar"]
और["foo",["bar","baz"]]
के रूप में "foo" पहला तत्व के साथ सबसे सरणी कुंजी से मेल खाएंगे। हालांकि यह नहीं पिछले से मेल खाएगी नहीं["foo",{"an":"object"}]
तो {}
देर सॉर्ट क्रम में है, लेकिन निश्चित रूप से।
नोट "inclusive_end" हास्यास्पद मामले में जहां आप वास्तव में फार्म "some_customer_id \ u0000" की एक प्रमुख, "endkey" परिणाम में मिलान दस्तावेजों सहित नहीं द्वारा राशि के खिलाफ गार्ड। – user359996