现象
在FastGPT私有部署4.8.3版本中,位于packages/service/support/user/team/controller.ts的getTeamMember函数内,使用MongoTeamMember.findOne查询团队成员记录时,无法找到手动插入的MongoDB记录,但可正常查询系统自动创建的唯一一条记录。在MongoDB客户端执行插入语句可正常完成,但代码查询无法匹配手动插入的记录。示例查询代码为:
const tmb = await MongoTeamMember.findOne({ userId: "66e42360713983b81d00fad1" })针对该userId的手动插入记录无法被查询到,自动创建的记录可正常返回。
可能原因
暂未明确具体触发原因,需结合实际部署环境逐步排查,常见排查方向包括记录字段完整性、索引配置或查询参数匹配度。
排查步骤
- 对比手动插入记录与系统自动创建记录的完整字段结构,确认两者字段是否一致。
- 检查查询代码中的匹配参数,确认手动插入记录的字段值与查询条件完全匹配,例如示例中的
userId字段值是否完全一致。 - 直接在MongoDB客户端执行与代码中相同的查询语句,验证是否能返回手动插入的记录。
- 确认代码连接的MongoDB数据库实例与手动插入操作的数据库实例为同一实例。
解决与验证
根据排查结果修正对应问题:若存在字段缺失,补充系统自动创建记录的默认字段后重新插入;若参数不匹配,修正查询条件的字段或值;若数据库连接不一致,调整代码连接配置。验证时执行原查询代码,确认可正常查询到手动插入的记录。