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

时间:2016-03-15 19:30:10

标签: mongodb pymongo database

我在两个集合中有一个独特的字段,即“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驱动程序。

1 个答案:

答案 0 :(得分:0)

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

来实现

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

{
    $out    :"allData"
}   
])
  

{$project:{transform document as needed}},

{{1}}

要塑造allData集合,您可以使用$ project根据需要添加/删除字段。