收藏
回答

云开发聚合阶段获取对象数组中的对象属性值,「字段路径」中如何使用数组下标?

有类似如下的数据库集合:

{
  _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()


但问题是,字段路径貌似是不支持数组下标的。应该如何解决?

回答关注问题邀请回答
收藏

1 个回答

  • 游戏人生
    游戏人生
    2023-01-26

    试下这个

    `$rating[0]rate`
    
    2023-01-26
    有用 1
    回复 1
    • minimalistrojan
      minimalistrojan
      2023-01-26
      试了下,引号和反引号都不行。
      2023-01-26
      回复
登录 后发表内容