【发布时间】:2014-01-06 08:28:06
【问题描述】:
这里是mongodb中文档的结构:
{
"_id" : NumberLong(1),
"averageRating" : 2.5,
"date" : ISODate("2013-11-12T02:15:14.448Z"),
"filledBy" : "Degroote, Fred",
"results" : [
{
"answer" : "Very caring doctor. I am happy",
"name" : "comment",
"type" : "string"
},
{
"answer" : "4",
"name" : "premises",
"type" : "integer"
},
{
"answer" : "5",
"name" : "staff",
"type" : "integer"
},
{
"answer" : "0",
"name" : "provider",
"type" : "integer"
},
{
"answer" : "1",
"name" : "care",
"type" : "integer"
}
],
"tenantId" : NumberLong(2),
"token" : "38ae01f0-1203-4d10-9ff1-7c9fad1790cc",
"version" : NumberLong(0)
}
我们需要计算所有tenantId值为2的文档结果中结果名称“staff”的答案得分的平均值。
我们写的mongodb查询是:
> db.surveyResults.aggregate({$match: {'tenantId': 2}}, {$unwind: '$results'}, {$match: {'results.type':'integer'}},{$group: {_id: '$results.name', averageSatisfaction: {$avg: '$results.answer'}}})
但是,上述 mongodb 查询中的问题是字段 answer 是字符串类型。有什么方法可以在不改变字段答案类型的情况下解决这个问题?
【问题讨论】:
标签: mongodb aggregation-framework