_id使用nin()命令不能有效排除相应的数据
- 当前 Bug 的表现(可附上截图)
一、不加查询条件时,可以检索出48条数据,集合里就只有48条数据,此处是正确的。
二、添加一个搜索条件:ptypeKey:_.nin([‘laikj’,‘wakj’]),检索出来29条记录,这个也是正确的。
三、问题在这里:现在添加了_id的nin命令,没有生效,检索出来的数据还存在对应的两个_id的记录,还是29条记录,这里出错了
- 预期表现
_id的nin()命令能够有效排除数据。
- 复现路径
const collStep = db.collection( 'step' ) return await collStep.where({ // _id: _.nin(["5d27ee9578f8e29f4acb73d8","5d27ee9578f8e29f4acb73da"]), // ptypeKey:_.nin(['laikj','wakj']) }).limit(100).orderBy( 'order' , 'asc' ).get() //生产版使用 |
- 提供一个最简复现 Demo
在新集合zikupractice中执行nin过滤_id没有问题
个人感觉:可能与_id的版本有关系:
以前导入的数据生成的_id(24位数):(2019-7-1前)step集合
“5d27ee9578f8e29f4acb73d8”,“5d27ee9578f8e29f4acb73da”
现在导入的数据生成的_id(32位数):(2019-7-1后)zikupractice集合
“13dba11c5d2deb9b08fa709c1ec0255d”,“3e1ef27b5d2deb9b08f9297f46557e93”