收藏
回答

为什么使用云开发控制台数据库模板查询结果和云函数调用API查询结果不一致?

场景:

业务稍微有点复杂,查询语句where条件有多个 而且长度不确定 所以使用的where拼接的方式(而不是所有条件全部写在where内).


疑问:

官方文档 where是Collection对象下的一个方法, 并且返回值类型为Collection.

我理解为返回值可以继续使用where方法进一步缩小集合, 是我理解错了还是BUG?


假数据 数据库 一共三条数据

[{_id: "b1a52c595fd1d414016f85210ebfbdce", used: false},

{_id: "79550af260069adf00185b74265e2e8a", used: true},

{_id: "1526e12a600c35050081efa12f7fa361", used: true}]



数据库语句

db.collection('commodities')

  .where({

    _id: _.in([

      'b1a52c595fd1d414016f85210ebfbdce',

      '79550af260069adf00185b74265e2e8a',

    ]),

  })

  .where({ used: true })

 .field({_id:true,used:true})

  .get()


云开发控制台执行结果 开发者工具版本 1.05.2101181

正确执行了我想要的结果 即两个where条件都有包含,


云函数执行结果

[{"_id":"79550af260069adf00185b74265e2e8a","used":true},{"_id":"1526e12a600c35050081efa12f7fa361","used":true}]

执行结果查询集其实是跳过了第一个where条件 只执行了第二where条件



最后一次编辑于  2021-01-23
回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容
问题标签