Ruby on rails 执行mongo find in for循环会导致它崩溃吗?

Ruby on rails 执行mongo find in for循环会导致它崩溃吗?,ruby-on-rails,mongodb,mongoid,Ruby On Rails,Mongodb,Mongoid,我设置了一个爬虫程序,它可以对网站上的所有(唯一)链接进行爬虫,并将链接及其主体标签内容存储在mongo中。下次我爬网网站时,我需要确保只有新的链接或带有更新的body标签内容的链接被摄取,以避免重复 因此,基本上我是在填充一个新抓取的链接数组,对于数组中的每个链接对象,我执行一个 find({:link\uurl=>link\uurl,:body=>body}) 在for循环中运行上述find查询会导致任何障碍或崩溃吗?假设在最坏的情况下,数组的长度可能是5000 我尝试在一个查询中获取整个集

我设置了一个爬虫程序,它可以对网站上的所有(唯一)链接进行爬虫,并将链接及其主体标签内容存储在mongo中。下次我爬网网站时,我需要确保只有新的链接或带有更新的body标签内容的链接被摄取,以避免重复

因此,基本上我是在填充一个新抓取的链接数组,对于数组中的每个链接对象,我执行一个
find({:link\uurl=>link\uurl,:body=>body})

在for循环中运行上述find查询会导致任何障碍或崩溃吗?假设在最坏的情况下,数组的长度可能是5000

我尝试在一个查询中获取整个集合,但这种方法需要深度哈希匹配,并且是一个n^2操作。或者,它需要多次哈希重组操作,以使其适合于比较

for(i<5000)
  temp = db.collection.find(i) 
end



用于(i)P>MangGDB不会从大量查询中崩溃,但是您的爬行器可能运行缓慢。您可以考虑使用$In运算符来匹配单个查询中的多个值,或者使用$/操作符进行更复杂的条件,并且确保您正在执行的查询使用索引。但是,您可以考虑使用$In运算符来匹配单个查询中的多个值,或者更复杂的条件下的$或运算符,并且确保您正在执行的查询使用索引。

我不理解这个问题,是什么阻止您编写代码并测试它?我已经做了LoA。d测试。它似乎工作得很好,没有任何问题。我想知道这样做是否是一种良好的做法。我不明白这个问题,是什么阻止了你编写代码并进行测试?我已经做了负载测试。它似乎工作得很好,没有任何问题。我想知道这样做是否是一种良好的做法谢谢你的建议!谢谢你的建议!