2015-05-20 74 views
1

我可以存儲聚合的結果爲另一個集合在同一個數據庫如何聚集結果存儲到另一個數據庫

但我怎樣才能把結果存儲到另一個數據庫

這是應對的收集到anthoer數據庫

use test1; 
db["user_data"].find().forEach(
     function(d){ db.getSiblingDB("test2")['user_data'].insert(d); 
    }); 

聚集功能

pipeline = [ 
    { 
    '$group': { 
     '_id': { 
     '$year': '$birthday' 
     }, 
     'count': { 
     '$sum': 1 
     } 
    } 
    }, { 
    '$sort': { 
     '_id': 1 
    } 
    }, { 
    '$out': output_collection 
    } 
]; 
cur = db[source_collection].runCommand('aggregate', { 
    pipeline: pipeline, 
    allowDiskUse: true 
}); 

回答

2

運行聚集到輸出集合後,你需要運行克隆收集使用db.cloneCollection()如下另一個數據庫中的另一個命令:在

db.runCommand({ 
    cloneCollection: "test.output_collection", 
    from: "mongodb.example.net:27017", 
    query: { active: true } 
}) 

以上副本從test數據庫output_collection集合服務器在mongodb.example.net。該操作僅複製滿足查詢{ active: true }的文檔,但查詢參數是可選的。 cloneCollection總是複製索引。

相關問題