这似乎是一件非常简单的事情,但我找不到任何真正解释如何做的讨论。
我正在使用MongoDB
和Node.js
构建一个刮刀。它每天运行一次并擦除数百个URL并记录到数据库。例如:
url
,img src
,page title
和domain name
的记录会保存到MongoDB。这就是我想要实现的目标:
mongodb
记录并进行更新。我遇到问题的是删除尚未删除的条目。实现这一目标的最佳方法是什么?
到目前为止,我的代码成功检查条目是否存在,更新它们。它正在删除与我遇到问题不再相关的记录。粘贴链接在这里:
答案 0 :(得分:1)
您需要为项目添加时间戳(并在每次扫描时更新它们)并定期删除一段时间内未更新的项目,或者您需要将项目与特定查询相关联。在后一种情况下,您将收集以前与查询关联的所有项目,并在新结果进入时将其标记为关闭。最后未在列表中标记的任何项目都需要删除。
答案 1 :(得分:0)
另一种可能性是在mongodb 2.4中使用新的TTL索引选项,允许您设置文档上的生存时间
http://docs.mongodb.org/manual/tutorial/expire-data/
这会让服务器随着时间的推移而过期,而不必执行大量昂贵的删除执行。
另一个优化是使用2选项的强大功能来避免写入的内存高度碎片化,删除循环创建