2017-04-09 169 views
2

我想第一次使用mongoDB。我需要將我的數據從一個集合集合到另一個集合。嘗試這個代碼,但它不會因爲意外錯誤的執行:查詢嵌套組並推入mongodb

「意外的表情$組」

db.import.aggregate([{ 
     $group: { 
      _id: { 
       day: "$Day", 
       month: "$Month", 
       year: "$Year" 
      }, 
      manufacturers: { 
       $push: { 
        $group: { 
         _id: { 
          manID: "$Man_ID", 
          man_name: "$Man_Name" 
         }, 
         types: { 
          $push: { 
           model_name: "$Model_name", 
           body_type: "$Body_type" 
          } 
         } 
        } 
       } 
      } 
     } 
    }, 
    { $out: "output_doc" } 
], { 
    allowDiskUse: true, 
    cursor: {} 
}); 

預期輸出:

["$Day","$Month","$Year", 
    ["$Man_ID","$Man_Name", 
     ["$Model_name","$Body_type"] 
    ] 
] 

回答

1

你只需把你的新的_id字段,並創建您的types陣列沒有任何運營商:

db.import.aggregate([{ 
    $group: { 
     _id: { 
      day: "$Day", 
      month: "$Month", 
      year: "$Year" 
     }, 
     manufacturers: { 
      $push: { 
       _id: { 
        manID: "$Man_ID", 
        man_name: "$Man_Name" 
       }, 
       types: [{ model_name: "$Model_name", body_type: "$Body_type" }] 
      } 
     } 
    } 
}]) 
+0

你好伯特蘭。我試過這個查詢,它運行了一段時間,然後連接終止到數據庫實例。嘗試重新啓動連接並運行其他一些基本查詢。它可以很好地處理這些查詢。我試着再次運行這個查詢,結果連接再次丟失。我不確定這是查詢還是因爲我的收藏大小有170萬條記錄。 – Avi

+0

我發現問題,查詢工作。謝謝 – Avi