2011-09-29 27 views

cevap

6

Ekstra işlem yapmadan bunu yapamazsınız.

sıraladığınız üzerinde ancak o zaman birinci veya ekstra alan 'c' oluşturmak için gereken diğer dünyalarda bir belgede saklayın ve her güncelleme/insert ile içinde bir + b depolamak ve gereken herhangi bilgisayarlı değerine sıralamak için 'c' her zamanki gibi.

+3

Çok acımasız bir çözümdür. :( – fl00r

+0

Çalışma alanından mb brutal görünüyor, ama performans açısından her zaman daha hızlı bir şekilde herhangi bir hesaplamalar. –

+0

Bu sql tarafında acımasız görünüyor :) – fl00r

2

Bu sorguda gibi elde edebilirsiniz:

db.mycol.aggregate(
    [{$match:{tag:"xxx"}}, 
    {$project:{tag:1, count_a:1, count_b:1, factor:{$add: ["$count_a", "$count_b"]}}}, 
    {$sort:{factor:-1}}] 
)