收藏
回答

云函数操作数据库的sql语句问题?

在使用云函数操作数据库的时候,我发现很多的操作数据库语句都可以用js来实现,

比如.addFields({title: ...}) 可以写成查到数据之后给对象点一个title

再比如一些算数操作符$.add $.divide 等 也可以用js 的 + - * / 来代替实现,

那么请问在用数据库操作语句和js语法都能实现的时候,该怎么选择呢?为什么?

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

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-06-16
    { _id: 'xxxxx', a:5, b:5 }
    { _id: 'zzzss', a:1, b:5 }
    { _id: 'zxxss', a:5, b:0 }
    ....
    
    // 查询 a+b的 值 大于 5 的记录
    // 下面这样写'$a'+'$b' 或者是 a+b 都不对呀
    db.collection('xxx').aggregate()
    .addFields({
        c: '$a'+'$b' // 或者是 a+b
    }).match({
        c: $.gt(5)
    })
    
    // $.add(['$a', '$b']) 才正确
    db.collection('xxx').aggregate()
    .addFields({
        c: $.add(['$a', '$b'])
    }).match({
        c: $.gt(5)
    }).end()
    
    所以你知道改怎么选择了吧
    
    

    若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人

    2020-06-16
    有用 1
    回复 7
    • notfound
      notfound
      2020-06-16
      2020-06-16
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-06-16回复notfound
      不闲麻烦就for
      2020-06-16
      回复
    • notfound
      notfound
      2020-06-16回复o0o有脾气的酸奶
      我懂了,实际上就是这两种写法都可以,能用微信封装好的方法就尽量用微信的方法是吧。
      2020-06-16
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-06-16回复notfound
      我举的例子你没看懂吗,在查询里,字段加减乘除不能用+-*/,同样的不在查询里的js不能用add,divide等等
      2020-06-16
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-06-16回复notfound
      2020-06-16
      回复
    查看更多(2)
登录 后发表内容
问题标签