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