map-reduce ジョブの開発中に、MR コードは、map-reduce されるデータとは関係なく、有用な診断データ構造を生成します。これらのデータを mapReduce を呼び出したコードに渡したり、Mongo で保持したりする簡単な方法はありますか? ログ ファイルに書き込むだけでは、(a) そこには既に大量のデータがあり、(b) 診断情報は高度に構造化されており、実際にクエリを実行したいため、非常に最適ではないことが判明しています。それ。
これまでの私の調査では、MR データ構造は (シリアル化を介して) 値渡しされるため、「グローバル」スコープにフックされたものを含め、メモリ内のデータ構造が失われることが示唆されています。名前空間は、メインの JS サーバー側の名前空間から分離されているためdbeval
、それらに到達できないようです (または、少なくとも、どこを見ればよいかわかりません)。最後に大事なことを言い忘れましたが、すべてのデータベース オブジェクトと関数が存在しますが、10gen はそれらの使用を防ぐために (混乱させる) エラー メッセージを生成してcoll.insert
いtypeof coll.insert === 'function'
ますtrue
。
明確にするために、MongoDB でのロギング/デバッグのサポートはかなり制限されているため、単一ノードでの開発のためにこれを行うことに興味があります。このタイプの副作用は、本番環境では良くありません。