有类似如下的数据库集合:
{
_id: 'abc',
rating: [
{
key: 1,
desc: 'xxx',
rate: 4,
},
{
key: 2,
desc: 'xxx',
rate: 2,
},
]
},
{
_id: 'def',
rating: [
{
key: 1,
desc: 'xxx',
rate: 3,
},
{
key: 2,
desc: 'xxx',
rate: 3,
},
]
}
...
想要实现的是:分别计算所有数据的 rating 数组中每个对象的 rate 字段的平均值。
预期的聚合语句如下:
db.collection('orders').group({
_id: null,
rating1: $.avg('$rating.0.rate'),
rating2: $.avg('$rating.1.rate'),
}).end()
但问题是,字段路径貌似是不支持数组下标的。应该如何解决?
试下这个
`$rating[0]rate`