丘公子哦
丘公子哦
  • 发布:2026-03-26 18:02
  • 更新:2026-03-26 18:23
  • 阅读:12

【报Bug】数据库语法有问题 dbCmd.nin 没办法排除,dbCmd.in 就正常

分类:uniCloud

产品分类: uniCloud/支付宝小程序云

操作步骤:

没有排除id

预期结果:

正常排除id

实际结果:

没有排除id

bug描述:

使用 dbCmd.nin 没有办法排除数据,但是 dbCmd.in 却正常

2026-03-26 18:02 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。

这个bug反馈的信息非常不完整,作为官方人员无法直接定位问题,需要用户补充大量关键信息。以下是我的详细评审意见:

评审结论:信息缺失严重,无法判定bug是否成立

1. 内容完整性检查(多项关键信息缺失)

代码示例完全缺失

  • 当前反馈没有提供任何代码片段,官方人员无法得知:
    • 是在云函数中使用还是前端clientDB使用
    • 具体的查询语句写法(dbCmd.nin的参数格式是否正确)
    • 数据类型是否匹配(数组 vs 字符串)

复现步骤描述不清

  • "没有排除id"是现象描述,不是复现步骤
  • 缺少:如何构造查询条件、传入的参数类型、数据表结构等

环境信息完全缺失

  • 未说明使用的云服务商(阿里云/腾讯云/支付宝云)
  • 未说明uniCloud版本号
  • 未说明运行环境(Node.js版本、uni-app版本等)

问题描述过于笼统

  • 仅说"没办法排除",缺少具体的错误信息、返回值、或查询结果示例

2. 可能的关联问题(基于知识库)

根据优先知识库中的记录,如果是支付宝云新空间(2024年11月后创建的空间),存在以下重要背景:

"支付宝云新空间和老空间问题:支付宝云空间以2024年11月起为分割线,之前创建的内置数据库正常,之后创建的则可能出现语法兼容性问题。2024年11月后,支付宝云将内置数据库更换为兼容部分mongodb语法的自研数据库...部分数据库操作代码可能需要进行调整以绕过兼容性问题"

如果用户使用的是支付宝云新空间dbCmd.nin可能存在兼容性bug,但需要通过以下方式验证。

3. 需要用户补充的关键信息

请用户补充以下内容,否则无法继续排查:

  1. 最小可复现代码

    // 云函数代码示例  
    const db = uniCloud.database()  
    const dbCmd = db.command  
    // 具体的查询代码,包括where条件和nin的使用方式

    本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码

  2. 数据样本

    • 待查询的数据结构示例(包含_id字段的样本数据)
    • 传入nin方法的参数类型和值(确认是否为数组)
  3. 环境信息

    • 云服务商(阿里云/腾讯云/支付宝云)
    • 如果是支付宝云,空间创建时间是否在2024年11月之后
    • uniCloud DB Schema版本
  4. 对比测试结果

    • dbCmd.in正常工作的代码片段
    • dbCmd.nin失效的代码片段(两者参数差异)

4. 初步排查建议(在补充信息前)

建议用户先检查:

  • 确认nin的参数是否为数组类型(与in一致)
  • 确认字段类型与查询值类型是否匹配
  • 如果在支付宝云新空间,尝试使用dbCmd.and + dbCmd.neq组合作为临时替代方案

当前状态:暂不认定为有效bug,标记为"待补充信息"。如确认是支付宝云新空间的语法兼容性问题,可转至已知问题跟踪。

内容为 AI 生成,仅供参考
丘公子哦

丘公子哦 (作者) - 戒奢从简

1、最小可复现代码:

const dbCmd = db.command  

db.collection("eight_user").aggregate()  
      .match({  
        "deleted_at": 0,  
        "pass": true,  
        "region": new RegExp(`^${'北京市-市辖区'}.*`, 'i'),  
        "gender": 1,  
        "_id": dbCmd.nin([  
  '69c497c39eef0ad07f3de04f',  
  '69c4bee2d51308f649d119f6'  
])  
      })  
      .sample({  
        size: 3  
      })  
      .end()

2、数据样本

[  
    {  
        "_id": "69c497c39eef0ad07f3de04f",  
        "avatar": "https://xxx",  
        "birthday": "2000年03月26日 13时",  
        "birthtime": "",  
        "created_at": "2026-03-26 10:19:47",  
        "created_at_timestamp": 1774491587,  
        "deleted_at": 0,  
        "device_info": "",  
        "gender": 1,  
        "job": "无业游民",  
        "mobile": "15ddb760a4742d1e0ecef1e55708476b",  
        "nickname": "帅哥",  
        "pass": true,  
        "people_desc": "你",  
        "pictures": [        ],  
        "price_desc": "好??我也是一天也没有?‍↔️?我都",  
        "push_clientid": "642a65dca5a5d6751e54a5e601a6adb4",  
        "region": "北京市-市辖区-东城区",  
        "tall": "175cm",  
        "token": "",  
        "world_desc": "好想吃"  
    }  
]

3、环境信息:
云服务商(支付宝云)
空间创建时间在2024年11月之后
uniCloud DB Schema版本(没找到哪里看)

要回复问题请先登录注册