收藏
回答

云开发 数据库能实现字段运算后作为条件查询吗,如 where A*15 > 300 ?


类似的情况....单字段运算,或者多字段运算....文档好像没找到类似的?

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

2 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-11-02

    可以的,A > B

    const $ = db.command.aggregate

    db.collection('table2').aggregate()

    .addFields({

        matched: $.gt(['$A', '$B'])

    })

    .match({

        matched:!0

    })

    .end().then(res => console.log(res))

    .catch(err => console.error(err))

    =================

    A*B > 300

    db.collection('table2').aggregate()

    .addFields({

        matched: $.gt([$.multiply(['$A', '$B']), 300])

    })

    .match({

        matched:!0

    })

    .end().then(res => console.log(res))

    .catch(err => console.error(err))

    ==============

    多个数或字段值相乘

    $.multiply(['$A', '$B', 10,....])

    https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/database/aggregation/operators/multiply.html

    还有很多运算api,自己每个都点一下,看看是什么意思,以后需要的时候,就知道有没有什么api可以使用了


    2019-11-02
    赞同 1
    回复 1
    • ieloag
      ieloag
      2019-11-02
      嗯,下午实验了,不需要match....用_.expr就行了....文档中有些例子太浅了...
      2019-11-02
      回复
  • Stephen
    Stephen
    2019-11-02

    .where({

        A: _.expr($.gt([_.mul(15), 300]))

    })


    2019-11-02
    赞同 1
    回复 4
登录 后发表内容
问题标签