在mongodb中抓取URL并使用抓取的文本更新记录

时间:2012-05-27 20:07:44

标签: python node.js mongodb

我有一个维基百科文章编辑的序列化集合,我正在流式传输并存储到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应用程序,该应用程序在页面标题和图像的上下文中显示已编辑的文本(如果后者存在)。

如何通过将它们保存在同一个集合中来实现这一目标,还是将结果存储在新集合中会更好?

1 个答案:

答案 0 :(得分:1)

由于以下几个原因,我会将已删除文件的内容存储在另一个集合中:

  1. 仅包含编辑事件的当前集合,这意味着您永远不会有任何更新。这使它快速存储。已删除的文档集可能包含数量级更大的文档。
  2. 这两种类型的文档是两种截然不同的文档类型,因此并不属于同一个集合。它使索引不必要复杂,你可能需要创建更多包含大量无关信息的索引。