场景:
业务稍微有点复杂,查询语句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条件
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/command/Command.and.html