关于mongo数据查询的问题?

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

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

image.png

image.png

阅读 7.2k
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"
  }
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏