MongoDB Compass中lookup使用let不生效问题排查求助
MongoDB Compass lookup关联查询问题排查
问题根因
- 语法错误:你编写的lookup查询代码中,
let字段声明行末尾缺少逗号,导致BSON结构解析失败,无法正常执行关联逻辑 - 命名歧义(非强制但建议优化):自定义变量直接命名为
_id容易和organisations集合的原生_id字段混淆,增加排查成本
修正后的查询代码
{ from: 'organisations', let: { org_id: '$organisation' }, pipeline: [ { $match: { $expr: { $eq: ['$_id', '$$org_id'] } } } ], as: 'compname' }
额外验证点
如果修正语法后仍无返回结果,请检查units集合的organisation字段类型:必须和organisations集合的_id类型一致,均为ObjectId,如果是存储为字符串格式的ID,需要先做类型转换再匹配。
内容的提问来源于stack exchange,提问作者Aaron
相关产品推荐
相关产品推荐

