收藏
回答

云开发数据库 bug

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 客户端 1 1



实在不好意思 我又发一遍。。因为没人理我


以下代码 执行不了。。出问题。

db.collection('name')

   .where({

     a: _.and(_.gt(10), _.lt(14)) ,

     b: _.and(_.gt(13), _.lt(18)) , //去掉这一行 就能执行了

     c: 1

   })

   .get({

     success(res) {

       console.log(res);

     }

   });

如果 去掉  b 的那一行就可以了。


1 请问是否bug?


2 之所以这么写 是因为 以前写成这样

     where( {

        a: _.gt(10),

        a: _.lt(14),

        b: _.gt(13),

        b: _.lt(18),

        c: 1

      })

然后前天和昨天 分别 发现 这个语句随然能执行 但结果是错误的。


今天早晨好像突然好了

但是 现在发现  又不行了!!!!



我就想问问。。 腾讯的程序员能不能不要这么随意??  能不能认真点??





经过进一步 测试   把lt写在 gt前面 其结果就正确了。


where( {


a: _.lt(14),         //lt  写前面

   a: _.gt(10),


    b: _.lt(18),   //lt 写前面

   b: _.gt(13),

  

   c: 1

 })




我想请问 这 到底是什么样的  脑袋 思考出来的 逻辑啊??


最后一次编辑于  03-19  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 早晚有一天
    早晚有一天
    03-19

    @nickname

    03-19
    赞同
    回复
  • 邓坤力
    邓坤力
    03-19

    感谢反馈,问题已复现,这个问题会在下版本修复,抱歉给你带来麻烦了

    03-19
    赞同
    回复 2
    • 早晚有一天
      早晚有一天
      03-19

      一共是两个 bug哦!


      第一个是


        .where({

           a: _.and(_.gt(10), _.lt(14)) ,

           b: _.and(_.gt(13), _.lt(18)) , //去掉这一行 就能执行了

           c: 1

         })



      第二个是


      where( {

         a: _.lt(14),   //lt 必须写前面 ,如果先写 gt  其结果是 错的

         a: _.gt(10),

           b: _.lt(18),   //lt 写前面

         b: _.gt(13), 

         c: 1

       })




      03-19
      回复
    • 邓坤力
      邓坤力
      03-19回复早晚有一天

      第二个是 js 的语法呢,相同 key 的话后者会覆盖前者,下面两个是等价的:


      {

         a: _.lt(14),   //lt 必须写前面 ,如果先写 gt  其结果是 错的

         a: _.gt(10),

           b: _.lt(18),   //lt 写前面

         b: _.gt(13), 

         c: 1

       }


      ===


      {

         a: _.gt(10),

         b: _.gt(13), 

         c: 1

       }


      03-19
      回复