Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 平均嵌套值_Mongodb_Aggregation Framework - Fatal编程技术网

Mongodb 平均嵌套值

Mongodb 平均嵌套值,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我在寻找一种方法来求和并平均文档中的“嵌套值”。我感兴趣的是平均一个用户的孩子数量。 这些行给我的结果是0 db.getCollection('users').aggregate([ { $group: { _id: "id", Mean: { $avg: "$data.details.MemberDetails.numberOfKids" } } }]) 我在stackoverflow中读到了一些问题,以及我的数据位于一个对象中的问题,该对象

我在寻找一种方法来求和并平均文档中的“嵌套值”。我感兴趣的是平均一个用户的孩子数量。 这些行给我的结果是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,
>                     }
>                 }
>               ]
>              }
> 
> }

在对文档进行分组之前,需要首先展平数组,请使用管道操作符:

db.getCollection('users').aggregate([
    { "$unwind": "$data.details" },
    {
        "$group": {
            "_id": "id",
            "Mean": {
                "$avg": "$data.details.MemberDetails.numberOfKids"
            }
        }
    }
])

在对文档进行分组之前,需要首先展平数组,请使用管道操作符:

db.getCollection('users').aggregate([
    { "$unwind": "$data.details" },
    {
        "$group": {
            "_id": "id",
            "Mean": {
                "$avg": "$data.details.MemberDetails.numberOfKids"
            }
        }
    }
])

嗨,谢谢你的快速回复。我看到了下一个错误“errmsg”:“异常:无法识别的管道阶段名称:'$uniwnd'”@NatiBarchilon感谢您注意到输入错误;已写入
“$uniwnd”
,而不是
“$unwind”
。请再试一次,别忘了查看上的文档。谢谢,我没有注意到!所以对于总结,我也会这么做,再次感谢。嗨,谢谢你的快速回复。我看到了下一个错误“errmsg”:“异常:无法识别的管道阶段名称:'$uniwnd'”@NatiBarchilon感谢您注意到输入错误;已写入
“$uniwnd”
,而不是
“$unwind”
。请再试一次,别忘了查看上的文档。谢谢,我没有注意到!所以对于总结,我也会这么做,再次感谢。