2011-09-29 18 views

उत्तर

6

आप अतिरिक्त कार्रवाई के बिना इसे आसान नहीं कर सकते हैं।

किसी गणना किए गए मान को सॉर्ट करने के लिए आपको इसे किसी दस्तावेज़ में पहले या अन्य दुनिया में संग्रहीत करने की आवश्यकता है, आपको अतिरिक्त फ़ील्ड 'सी' बनाने की आवश्यकता है, और प्रत्येक अपडेट/डालने के साथ इसमें + बी स्टोर करें और केवल तभी सामान्य रूप से 'सी'।

+3

यह बहुत क्रूर समाधान है। :( – fl00r

+0

वर्क साइड एमबी की मात्रा से यह क्रूर दिखता है, लेकिन प्रदर्शन पक्ष से यह हमेशा किसी भी गणना के बाद तेज़ होता है। –

+0

यह एसक्यूएल पक्ष से क्रूर दिखता है :) – fl00r

2

आपने इस क्वेरी की तरह प्राप्त कर सकते हैं:

db.mycol.aggregate(
    [{$match:{tag:"xxx"}}, 
    {$project:{tag:1, count_a:1, count_b:1, factor:{$add: ["$count_a", "$count_b"]}}}, 
    {$sort:{factor:-1}}] 
) 
संबंधित मुद्दे