2017-11-11 9 views
0

これはMongoDBのかなり一般的な問題ですが、何か助けになるものは見つかりませんでした。私は共通キーを含む2つのコレクションを集計しようとしていますが、「最大文書サイズを超えました」というエラーが発生します。最大ドキュメントサイズを超えました

食事のコレクションは、特定の個人によって消費されるすべての食事であり、HasConsumedは、この個人が食事中に食べたすべての食品です。

食事には171318アイテムが含まれ、HasConsumedには541526アイテムが含まれます。あなたのパイプラインの

db.getCollection('Meal').aggregate(
    { 
     $lookup: 
     { 
      from: "HasConsumed", 
      localField: "nomen_nojour_tyrep", 
      foreignField: "nomen_nojour_tyrep", 
      as: "conso" 
     }}, 
     { $out : "hasConsumed" } 
    ) 
+0

は、ここでのクエリです。そうでない場合は、$ matchおよび$ project演算子を使用してフィルタリングすることによって文書サイズを縮小できます。 –

+0

私はすべてのデータが必要です。テストとして、私はコレクションのサイズを3で分割しようとしましたが、それでも動作しませんでした。 –

答えて

1

使用allowDiskUseオプション:あなたが参加しましたコレクションからすべてのデータを必要とするかどうかは、あなたの質問から明らかではない

db.getCollection('Meal').aggregate([ 
    { 
     $lookup: 
     { 
      from: "HasConsumed", 
      localField: "nomen_nojour_tyrep", 
      foreignField: "nomen_nojour_tyrep", 
      as: "conso" 
     }}, 
     { $out : "hasConsumed" } 


    ],{ allowDiskUse: true}) 
+0

認識できないパイプラインステージ名: 'allowDiskUse' –

+0

回答を修正しました – Astro

+0

私は最初と同じエラーに戻ります –

関連する問題