【发布时间】:2019-08-19 20:44:17
【问题描述】:
我设置了一个爬虫,它可以爬取网站上的所有(唯一)链接,并将链接及其 body-tag 内容存储在 mongo 中。下次我抓取网站时,我需要确保只有新链接或具有更新的 body-tag 内容的链接才会被摄取以避免重复。
所以,基本上我正在填充一个新抓取的链接数组,并且对于数组中的每个链接对象,我正在执行一个
db.collection.find({:link_url = > link_url, :body => body})
在 for 循环中运行上述查找查询会导致任何障碍或崩溃吗?假设在最坏的情况下,数组的长度可能是 5000。
我尝试在一个查询中获取整个集合,但这种方法需要深度哈希匹配并且是 n^2 操作。或者它需要多次哈希重组操作以使其适合比较。
for(i<5000)
temp = db.collection.find(i)
end
这就是我正在实现的核心逻辑。使用 mongodb/mongoid/rails 可以吗?
【问题讨论】:
-
我不明白这个问题,是什么阻止您编写代码并对其进行测试?
-
我已经完成了负载测试。它似乎工作正常,没有任何问题。我想知道一般来说做这样的事情是否是一种好习惯。
标签: ruby-on-rails mongodb mongoid