如何在mongodb中模拟简单连接

如何在mongodb中模拟简单连接,mongodb,Mongodb,我有两个与公司信息相对应的集合,每个集合都有另一个没有的信息。所以我只想把两个集合合并成一个集合,包含所有信息 示例: 集合_1具有以下记录: { "_id": { "$oid": "5f7db2adfa8c217420d32560" }, "Company": "moby group", "Country": "Afghanistan&quo

我有两个与公司信息相对应的集合,每个集合都有另一个没有的信息。所以我只想把两个集合合并成一个集合,包含所有信息

示例:

集合_1具有以下记录:

{
  "_id": {
    "$oid": "5f7db2adfa8c217420d32560"
  },
  "Company": "moby group",
  "Country": "Afghanistan",
  "Industry": "Media",
  "Status": "Done",
  "Links": [
    "https://mobygroup.com/",
    "https://en.wikipedia.org/wiki/Moby_Media_Group",
    "https://en.wikipedia.org/wiki/Moby",
    "https://www.amazon.com/Moby-Group-Darya/dp/B08BLQDRTZ"
  ]
}
{
  "_id": {
    "$oid": "5faa792d78a49486fdf4f605"
  },
  "Company": "moby group",
  "domain": "mobygroup.com",
  "year founded": 2003,
  "industry": "broadcast media",
  "size range": "201-500",
  "country": "afghanistan",
  "linkedin url": "linkedin.com/company/moby-group",
  "current employee estimate": 165,
  "total employee estimate": 324
}
集合2有如下记录

{
  "_id": {
    "$oid": "5f7db2adfa8c217420d32560"
  },
  "Company": "moby group",
  "Country": "Afghanistan",
  "Industry": "Media",
  "Status": "Done",
  "Links": [
    "https://mobygroup.com/",
    "https://en.wikipedia.org/wiki/Moby_Media_Group",
    "https://en.wikipedia.org/wiki/Moby",
    "https://www.amazon.com/Moby-Group-Darya/dp/B08BLQDRTZ"
  ]
}
{
  "_id": {
    "$oid": "5faa792d78a49486fdf4f605"
  },
  "Company": "moby group",
  "domain": "mobygroup.com",
  "year founded": 2003,
  "industry": "broadcast media",
  "size range": "201-500",
  "country": "afghanistan",
  "linkedin url": "linkedin.com/company/moby-group",
  "current employee estimate": 165,
  "total employee estimate": 324
}
我想将公司名称上的集合_1和集合_2合并为一个集合,如下所示:

{
  "_id": {
    "$oid": "..."
  },
  "Company": "moby group",
  "domain": "mobygroup.com",
  "year founded": 2003,
  "industry": "broadcast media",
  "size range": "201-500",
  "country": "afghanistan",
  "linkedin url": "linkedin.com/company/moby-group",
  "current employee estimate": 165,
  "total employee estimate": 324,
  "Status": "Done",
  "Links": [
    "https://mobygroup.com/",
    "https://en.wikipedia.org/wiki/Moby_Media_Group",
    "https://en.wikipedia.org/wiki/Moby",
    "https://www.amazon.com/Moby-Group-Darya/dp/B08BLQDRTZ"
  ]
}
换句话说,我希望集合2中的所有字段与集合1中的“状态”和“链接”字段相结合。从我的研究中,我发现MongoDB不允许一个人轻松地做到这一点,我发现使用查找和释放聚合可以实现这一点,但我无法将我的想法集中在流程上

有人能告诉我怎么做吗?

你可以用它来合并收藏

您需要一个类似于以下内容的查询:

db.coll2.aggregate([
{
“$lookup”:{
“from”:“coll1”,
“localField”:“公司”,
“外域”:“公司”,
“as”:“joinCollection”
}
},
{
“$addFields”:{
“地位”:{
“$arrayElemAt”:[
“$joinCollection.Status”,
0
]
},
“链接”:{
“$arrayElemAt”:[
“$joinCollection.Links”,
0
]
}
}
},
{
$unset:“joinCollection”
}
])
此查询使用
$lookup
在两个集合之间执行
连接。它通过
公司
字段合并集合,并将其存储到名为
joinCollection
的变量中

然后,查询添加所需的字段:
Status
Links
,并删除字段
joincollection
,以获得所需的对象

这是一个