我正在寻找一种方法来对该文档中的“嵌套值”进行求和。我对平均用户的孩子数量感兴趣。 这些行给了我0的结果。
db.getCollection('users').aggregate([
{
$group: {
_id: "id",
Mean: {
$avg: "$data.details.MemberDetails.numberOfKids"
}
}
}])
我在stackoverflow中已经读过一些问题,以及我的数据位于一个对象中的问题,该对象位于一个位于对象中的数组中 这就是数据的样子。 任何帮助都会有用。 谢谢。
/* 1 */
{
> "_id" : "160b2af1fdf06daf3",
> "userId" : "943af0fa65da28a4",
> "data" : {
> "details" : [
> {
> "MemberDetails" : {
>
> "numberOfKids" : 3,
> "Statuse" : "married",
>
> },
> "MemberDescroption" : {
> "hight" : 1.80,
> "wight" : 85,
> }
> }
> ]
> }
>
> }
答案 0 :(得分:2)
在分组文档之前,您需要首先展平数组,使用 $unwind
管道运算符:
db.getCollection('users').aggregate([
{ "$unwind": "$data.details" },
{
"$group": {
"_id": "id",
"Mean": {
"$avg": "$data.details.MemberDetails.numberOfKids"
}
}
}
])