首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从两个现有集合创建一个新的聚合集合?

从两个现有集合创建一个新的聚合集合?
EN

Stack Overflow用户
提问于 2016-03-15 19:30:09
回答 1查看 71关注 0票数 1

我在两个集合中有一个独特的字段,即"ip“。一个集合包含机器数据,另一个包含地理数据。

是否有一种方法可以从两个集合中聚合数据并使用这些数据创建第三个集合?

例如:

geo:

"ip" : "1.1.1.1", "lat" : 1.29, "lon" : 103.86

"ip" : "2.2.2.2", "lat" : 1.29, "lon" : 103.86

machines:

"ip" : "1.1.1.1", "load" : 5

"ip" : "2.2.2.2", "load" : 7

## becomes a new collection

"lat" : 1.29, "lon" : 103.86, "load" : 12

我正在为MongoDB使用Python驱动程序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-15 21:01:28

是的,有一种使用$out语句的方法

假设您有两个集合"pc“和"geo”,您将创建集合"allData“-- mongo查询将如下所示:

代码语言:javascript
运行
复制
db.pc.aggregate([
{
    $lookup:
    {
        from:"geo"  ,
        localfield:"ip",
        foreginField:"ip",
        as: geoData
    }
},
{
    $unwind:"$geoData"
},

{$project:{根据需要转换文档},

代码语言:javascript
运行
复制
{
    $out    :"allData"
}   
])

要形状您的allData集合,可以按需要使用$project添加/删除字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36020417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档