यहाँ
आप क्या करने की जरूरत है।
मानचित्र समारोह
function(doc)
{
if (doc.category)
{
emit(['category', doc.category], doc.modified);
}
}
फिर आपको एक सूची समारोह है कि उन्हें समूहों में, आप एक कम करने और ऐसा करने के दुरुपयोग temped किया जा सकता है की जरूरत है, लेकिन यह शायद इसलिए है क्योंकि बड़े सेट के साथ काफी तेजी से कम करने नहीं की त्रुटियों फेंक होगा आंकड़े का।
function(head, req)
{
% this sort function assumes that modifed is a number
% and it sorts in descending order
function sortCategory(a,b) { b.value - a.value; }
var categories = {};
var category;
var id;
var row;
while (row = getRow())
{
if (!categories[row.key[0]])
{
categories[row.key[0]] = [];
}
categories[row.key[0]].push(row);
}
for (var cat in categories)
{
categories[cat].sort(sortCategory);
categories[cat] = categories[cat].slice(0,10);
}
send(toJSON(categories));
}
आप सभी श्रेणियों 10 अब ऊपर प्राप्त कर सकते हैं
http://localhost:5984/database/_design/doc/_list/top_ten/by_categories
साथ और
http://localhost:5984/database/_design/doc/_list/top_ten/by_categories?include_docs=true
के साथ डॉक्स मिल अब आप एक से अधिक रेंज पोस्ट और सीमा जो श्रेणियों
के साथ इस क्वेरी कर सकता है
curl -X POST http://localhost:5984/database/_design/doc/_list/top_ten/by_categories -d '{"keys":[["category1"],["category2",["category3"]]}'
आप 10
को हार्ड कोड भी नहीं दे सकते हैं और req
चर के माध्यम से संख्या को पास कर सकते हैं।
यहां कुछ और देखें/सूची trickery है।
स्रोत
2010-04-20 04:35:19
क्या कोई कारण है कि आप इसे मैन्युअल रूप से नहीं करना चाहते हैं? उपलब्ध श्रेणियों के लिए पहली क्वेरी, फिर प्रति श्रेणी सूचियों से पूछें। बैच की गई दूसरी क्वेरी करना, यह लगभग क्वेरी पर है। –
मैं इसे हां कर सकता हूं - लेकिन मेरा सवाल यह है कि क्या इस तरह की कुछ चीज़ सोफेडब में संभव है, एक प्रश्न में। उदाहरण के लिए कोई वास्तव में घुलनशील जटिल नेस्टेड चयन कथन के साथ एसक्यूएल में ऐसा कर सकता है। – drozzy