2010-03-28 8 views
13

मेरे पास कॉच डीबी में एमपी 3 मेटाडेटा का एक गुच्छा है। मैं एमपी 3 मेटाडेटा में मौजूद प्रत्येक एल्बम को वापस करना चाहता हूं, लेकिन कोई डुप्लिकेट नहीं।मैं CouchDB में "DISTINCT" के एसक्यूएल समतुल्य कैसे करूं?

एक ठेठ दस्तावेज़ इस तरह दिखता है:

{ 
    "_id": "005e16a055ba78589695c583fbcdf7e26064df98", 
    "_rev": "2-87aa12c52ee0a406084b09eca6116804", 
    "name": "Fifty-Fifty Clown", 
    "number": 15, 
    "artist": "Cocteau Twins", 
    "bitrate": 320, 
    "album": "Stars and Topsoil: A Collection (1982-1990)", 
    "path": "Cocteau Twins/Stars and Topsoil: A Collection (1982-1990)/15 - Fifty-Fifty Clown.mp3", 
    "year": 0, 
    "genre": "Shoegaze" 
} 

उत्तर

25

मेरा मानना ​​है कि अपने नक्शे/कुछ ऐसा दिखाई देगा को कम:

function map(doc) { 
    emit(doc.album, null); 
} 

function reduce(key, values) { 
    return null; 
} 

अतिरिक्त पैरामीटर group=true

+0

साथ क्वेरी करने के लिए आप कृपया समझा सकते हैं जहां जादू अनन्य मानों लौटने में है याद रखें? –

+7

निश्चित रूप से। याद रखें कि 'मानचित्र' फ़ंक्शन एक दस्तावेज़ स्वीकार करता है और 'em (key, value) 'जोड़े पर' emit' को कॉल करता है। क्योंकि हम केवल एल्बम के बारे में परवाह करते हैं - कुछ और नहीं - हम केवल इसे छोड़ देते हैं। फिर, प्रत्येक * विशिष्ट * कुंजी के लिए, कॉच डीबी 'कम (कुंजी, मान)' को कॉल करेगा और आपकी क्वेरी के परिणामस्वरूप इसका उपयोग करेगा (फिर से, हम केवल 'शून्य' से 'शून्य' वापस लौटते हैं क्योंकि हमें परवाह नहीं है मूल्य)। –

+0

क्या इससे मदद मिलती है? –

संबंधित मुद्दे