能否通过$lookup比较字符串和ObjectId?

4

table1有一个字符串类型的字段"值",而table2有一个ObjectId类型的"值"字段,是否可以进行这样的查询或如何编写代码实现?

table1.aggregate([
    { 
        $lookup: { 
            from: "table2", 
            localField: "value", 
            foreignField: "_id", 
            as: "test" 
        }  
    }
])
1个回答

2
据我所知,在MongoDB中使用$lookup运算符连接集合时,数据类型应该相同。如果类型不匹配,则$lookup将无法工作。因此,在连接时,您应该使用那些具有相同类型的字段,因为它检查的是相等性

$lookup阶段在输入文档中的字段与“加入”集合的文档中的字段之间执行相等匹配

  • 如果localField类型为object,则foreignField应为object

  • 如果localField类型为string,则foreignField应为string

  • 如果localField类型为number,则foreignField应为number

$lookup文档


临时将字符串转换为对象以进行检查是否可行? - arunraj770
可以访问此链接https://dev59.com/12445IYBdhLWcg3wO3tu - Shaishab Roy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接