收藏
回答

云开发中云函数聚合阶段怎样检索对象数组中的值一个对象值?

{
    id: 1234,
    type: 'a',
    subs: [
        { time: 123001, val: 'a' },
        { time: 123002, val: 'b' },
        { time: 123003, val: 'c' }
    ]
}

在云开发中的聚合阶段里,怎样查找对象里的一个数组对象中一个字段是否含有指定的值,比如说 val是否含有a?

最后一次编辑于  2019-10-30
回答关注问题邀请回答
收藏

1 个回答

  • move
    move
    2019-10-30

    const _ = db.command

    const $ = db.command.aggregate

    db.collection('table').aggregate()  .project({    subs: $.filter({      input: '$subs',      as: 'item',      cond: $.eq(['$$item.val', 'a'])    })  })  .end()


    2019-10-30
    有用 2
    回复 11
    • ℀ 
      ℀ 
      2019-10-30
      如何能返回bool值?只要有就true。
      2019-10-30
      回复
    • move
      move
      2019-10-30回复℀ 
      自己写个判断 如果返回值长度大于1,代表true
      2019-10-30
      回复
    • move
      move
      2019-10-30回复℀ 
      因为这查询会有多条数据,不是一条,明白吗?
      2019-10-30
      回复
    • ℀ 
      ℀ 
      2019-10-31回复move
      不能在聚合阶段里判断吗?我是想判断后直接添加一个字段?当然你上面说的那个判断返回值长度我懂!谢谢
      2019-10-31
      回复
    • move
      move
      2019-10-31回复℀ 
      你查询的可能会有多条,你明白这句话的意思吗?必然查询出来是一个数组。这个不懂建议转行。
      2019-10-31
      回复
    查看更多(6)
登录 后发表内容
问题标签