关于mongo数据查询的问题?

图一是我在浏览器接口查到的id = ‘671f3292f318304347610528’其中PLI_HandleProcesses子表的数据也查出来了

图二是我在mongo compass工具中查的为什么查不出子表的数据呢,子表的关联字段是ProblemListInfoId
感觉写的没啥问题,巨佬们给我看看谢谢啦!

image.png

image.png

阅读 8.5k
1 个回答

数据结构,ProblemListInfoId在两个集合中如果都存在,我看了一下,你那个是不是一个是字符串,一个是对象,类型不一致

转换数据类型: 可以在查询中使用MongoDB的$toObjectId或$toString操作符来转换数据类型。例如:

{
  $lookup: {
    from: "lowcode_PLI_HandleProcess",
    localField: "_id",
    foreignField: "ProblemListInfoId",
    as: "handle_Processes"
  }
}

如果_id是ObjectId类型,而ProblemListInfoId是字符串类型,可以这样转换:

{
  $lookup: {
    from: "lowcode_PLI_HandleProcess",
    let: { localId: { $toString: "$_id" } },
    pipeline: [
      { $match: { $expr: { $eq: ["$ProblemListInfoId", "$$localId"] } } }
    ],
    as: "handle_Processes"
  }
}

推荐问题