Pymongo - 从两个数据库聚合

时间:2018-01-16 19:42:54

标签: python mongodb pymongo aggregation

Noob在这里。我需要获得一份报告,该报告是来自两个数据库的两个集合的汇总。试图绕过问题,但失败了。我找到的示例是聚合来自同一数据库的两个集合。

收藏1

SweetsResults = client.ItemsDB.sweets

收集糖果:_id,类型,颜色

Collection2

SearchesResults = client.LogsDB.searches

集合搜索:_id,时间戳,类型,颜色

我需要的报告将列出糖果收集中所有列出颜色的“糖果”类型的所有糖果,以及每行,“糖果”+颜色的任何可用组合的搜索数量(计数) 。

任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:1)

您可以在mongo shell中使用以下脚本。

为每种类型获取不同的颜色,然后为每种类型和颜色组合计数。

var itemsdb = db.getSiblingDB('ItemsDB');
var logsdb = db.getSiblingDB('LogsDB');

var docs = [];
itemsdb.getCollection("sweets").aggregate([
    {$match:{"type":"candy"}},
    {$group: {_id:{type:"$type", color:"$color"}},
    {$project: {_id:0, type:"$_id.type", color:"$_id.color"}}
]).forEach(function(doc){ 
    doc.count = logsdb.getCollection("searches").count({ "type":"candy","color":doc.color});
    docs.push(doc)
});

答案 1 :(得分:1)

@Veeram answer完全相同,但使用python:

mewtwo-show_hotels__*checkbox*