1
我想检查一下,如果2000个URL存在于一个集合中,并且将那些不存在的以及其他字段作为新文档插入。我只需要更新已存在的时间戳字段。通常新的会少一些。MongoDB:哪一个更快:findOne +如果不存在insert或upsert?
目前我在async.each()中循环并为每个响应做一个upsert,并在响应中使用updatedExisting字段来查看URL是否是新的。但也许我应该做findOne并插入或更新。另一个选择是对async.each中的现有查询进行批量查找并进行更新,并对新的批量插入进行批量插入。请指教!谢谢。
对于2000年的网址,我非常怀疑会有差异。和往常一样 - 亲自尝试并分析结果。 – 2014-09-29 01:05:36
@SalvadorDali谢谢。我会检查并发布结果,但是如果考虑到收集量增长到几百万个文档并且要检查的URL数量增长到5000个,您能否告诉我们有什么区别? – user3211198 2014-09-29 01:27:59
@ user3211198当你说你使用async.each()时,你的意思是这是在你的代码中的应用程序级别?所以你从数据库中获取文件,然后循环? – Tim 2014-09-29 03:53:34