繁体   English   中英

如何在 mongo DB 中使用查找

[英]how to use lookup in mongo DB

我尝试加入我的表,这是数据的示例。 我想在我的 data1 中加入 data2,其中 data1Id = data1.id

我尝试使用$lookup但它仍然获取所有数据

const data1 = [
  {
    id: 'ID1'
    name: 1
  }
]

const data2 = [
  {
    data1Id: 'ID1',
    sub_name: 'test'
  },
  {
    data1Id: 'ID1',
    sub_name: 'test'
  },
  {
    data1Id: 'ID3',
    sub_name: 'test'
  }
]


output =  [
  {
    data1Id: 'ID1',
    sub_name: 'test'
  },
  {
    data1Id: 'ID1',
    sub_name: 'test'
  },
 
]

这是我尝试的

[
  {
    '$lookup': {
      'from': 'data2', 
      'localField': 'data1Id', 
      'foreignField': 'id', 
      'as': 'output'
    }
  }
]

这就是我的 output 的样子

output = [
  {
    data1Id: 'ID1',
    sub_name: 'test'
  },
  {
    data1Id: 'ID1',
    sub_name: 'test'
  },
  {
    data1Id: 'ID3',
    sub_name: 'test'
  }
]

它没有 select 只有 data1Id 相同的数据

我明白了,因为查找不能使用 objectID,所以我必须先将 _id 投影到字符串中

[
  {
    '$project': {
      '_id': {
        '$toString': '$_id'
      }
    }
  }, {
    '$lookup': {
      'from': 'data2', 
      'localField': '_id', 
      'foreignField': 'data1Id', 
      'as': 'output'
    }
  }
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM