搜尋

首頁  >  問答  >  主體

mongodb - mongo聚合查詢使用$out輸出,執行的是取代操作而不是append操作

mongo聚合查詢遇到的一個問題

目前對mongo資料庫的一張表做一些聚合查詢的操作,考慮到資料量太大,從資料庫查尋出來結果還是需要插入到資料庫,故決定,將查詢結果插入到一個臨時的集合中,使用mongo的$out操作。根據業務需求,需要執行三次這樣的聚合查詢,測試發現$out輸出到新的集合是,執行替換操作,而不是append操作,以下是官網解釋:

現在我仍然有這樣的需求,將多次聚合的結果放在一張表中,該怎麼做?

PHPzPHPz2757 天前803

全部回覆(1)我來回復

  • 滿天的星座

    滿天的星座2017-05-02 09:20:44

    從2.6開始aggregation的回傳值是一個遊標。既然是遊標,就不要求你在客戶端把整個結果集緩存到內存中再操作,很直接的想法就是遍歷這個遊標,一條一條插進目標集合就可以了。例如在shell:

    db.coll.aggregate([...]).forEach(function(doc) {
      db.target_coll.save(doc);
    });

    回覆
    0
  • 取消回覆