По вашему вопросу похоже, что вы предполагаете, что результат подсчета равен только 2. В этом случае я могу предположить, что users.r
может иметь только 2 значения (кроме нуля).
Самое простое, что я предлагаю, - это выполнить арифметику с помощью javascript (если вы используете его в консоли mongo) илив случае использования его в программе, используйте язык, который вы используете для доступа к монго), например,
var results = db.collection.aggregate([theAggregatePipelineQuery]).toArray();
print(results[0].count/results[1].count);
РЕДАКТИРОВАТЬ: Я делюсь альтернативой вышеподход, потому что OP прокомментировал ограничение не использовать код JavaScript и необходимость делать это только с помощью запроса. Вот оно
([
{ /**your existing aggregation stages that results in two rows as described in the question with a count field **/ },
{ $group: {"_id": 1, firstCount: {$first: "$count"}, lastCount: {$last: "$count"}
},
{ $project: { finalResult: { $divide: ['$firstCount','$lastCount']} } }
])
//The returned document has your answer under `finalResult` field