如何将两个(或更多)mongoDB集合的文档合并到查询结果中?

时间:2017-12-15 20:19:25

标签: mongodb

我有两个集合,我想在数据库中保持独立,但我想将两者合并到查询结果中。

首都:

{ 
    "name" : "Austin",       
    "latitude" : "11111", 
    "longitude" : "22222"
    "extra_information" : {
        "best_pizza" : "xxxxx", 
        "mayor" : "John Smith"
    }
}
{ 
    "name" : "Albany",         
    "latitude" : "33333", 
    "longitude" : "44444"
    "extra_information" : {
        "best_pizza" : "xxxxx", 
        "mayor" : "John Doe"
    }
}

non_capitals:

{ 
    "name" : "Beaumont",       
    "latitude" : "55555", 
    "longitude" : "66666"
}
{ 
    "name" : "Syracuse",       
    "latitude" : "77777", 
    "longitude" : "88888"
}

我希望我的查询返回:

{ 
    "name" : "Austin",       
    "latitude" : "11111", 
    "longitude" : "22222"
    "extra_information" : {
        "best_pizza" : "xxxxx", 
        "mayor" : "John Smith"
    }
}
{ 
    "name" : "Albany",         
    "latitude" : "33333", 
    "longitude" : "44444"
    "extra_information" : {
        "best_pizza" : "xxxxx", 
        "mayor" : "John Doe"
    }
}
{ 
    "name" : "Beaumont",       
    "latitude" : "55555", 
    "longitude" : "66666"
}
{ 
    "name" : "Syracuse",       
    "latitude" : "77777", 
    "longitude" : "88888"
}

我找到了第二个集合何时应该使用$ lookup键入第一个字段的解决方案,但是没有简单的SQL UNION样式操作。例如,我不关心非大写字母与每个国会大厦的状态。

要明确:我正在尝试创建一个查询以返回将第二个(以及第三个和第三个)集合追加到第一个的结果,而不进行任何修改。我也不想创建第三个集合,只返回结果。

MongoShell的回答与原始查询一样好。

0 个答案:

没有答案