我正在Mongodb上构建一个简单的调查应用程序,最难的部分是使用Mongodb的聚合框架获得统计数据。
下面是一个提交调查答案的例子。answers属性是一个包含每个问题答案的数组。
{
uid:'xxxx',
surveyId:'xxxxx',
answers:[
{ answer: A }, // question 1 ‘s answer
{ answer: B }, // question 2 ‘s answer
{ answer: C } // question 3 ‘s answer
]
}
我想得到的最后结果是了解调查的总体统计数字。
Question 1:
A 50% B 40% C 10%
Question 2:
A 60% B 40% C 0%
mongodb聚合的棘手之处在于如何处理“数组”
1条答案
按热度按时间bzzcjhmw1#
一个简单的选项是
$unwind
和$group
:了解它在playground example上的工作原理
或者,更通用的方法可以使用
$group
两次,而不知道每个问题的答案选项:了解它在playground example上的工作原理