1

node.jsを使用してmongodbにストリーミングおよび保存しているウィキペディアの記事編集のシリアル化されたコレクションがあります。それらは次のようになります。

{ "time" : 1338144181565, "page" : "Pavol Országh Hviezdoslav", "url" : "http://es.wikipedia.org/w/index.php?diff=56528327&oldid=56521690", "delta" : -60, "_id" : ObjectId("4fc275b5cd08c22d31000001") }
{ "time" : 1338144183265, "page" : "Indian Premier League", "url" : "http://en.wikipedia.org/w/index.php?diff=494656175&oldid=494656151", "delta" : -12, "_id" : ObjectId("4fc275b7cd08c22d31000002") }
{ "time" : 1338144187346, "page" : "Dizz Knee Land", "url" : "http://en.wikipedia.org/w/index.php?diff=494656189&oldid=494656176", "delta" : -84, "_id" : ObjectId("4fc275bbcd08c22d31000003") }

URLは編集の違いを示しており、編集されたテキストをpythonスクリプトでスクレイピングし、新しいフィールド「edit_text」と、場合によってはそれぞれのメイン画像のimg src(「image_url」)でレコードを更新しますウィキペディアの記事 (ある場合)。

最終的には、更新されたデータを Web アプリケーションにストリーミングし、ページ タイトルと画像 (存在する場合) のコンテキストで編集されたテキストを表示することが考えられます。

すべてを同じコレクションに保持することでこれを行うにはどうすればよいでしょうか、または結果を新しいコレクションに保存する方がよいでしょうか?

4

1 に答える 1

1

いくつかの理由により、スクレイピングされたファイルのコンテンツを別のコレクションに保存します。

  1. 編集イベントを含む現在のコレクションは追加のみです。つまり、更新はありません。これにより、保存が非常に高速になります。スクレイピングされたドキュメント コレクションには、桁違いに大きいドキュメントが含まれている可能性があります。
  2. 2 つのタイプのドキュメントは 2 つの非常に異なるドキュメント タイプであるため、実際には同じコレクションには属しません。これにより、インデックスが不必要に複雑になり、多くの無関係な情報を含むインデックスをさらに作成する必要が生じるでしょう。
于 2012-05-28T07:46:31.807 に答える