在perl中检查mongodb中的文档是否存在的最快方法是什么?
有没有比这更快的方法?:
my $cursor = $cache->find( { "key" => $key->key } );
if ( $cursor->count ) {
return 1;
}
答案 0 :(得分:2)
使用count
方法很好。要保存一些代码,您可以改为使用find_one
:
return 1 if $cache->find_one( { "key" => $key->key } );
这两者都有大约相同的网络开销,需要至少两次往返才能发送查询并从游标中检索结果。
如果使用命令,可能会节省一点处理时间。 (尽管如此,这只是对find_one
集合进行了$cmd
。
my $results = $cache->aggregate( [ { '$match' => { key => $cache->key } }, { '$limit' => 1 } ] );
return 1 if @$results;
但我怀疑这种级别的网络开销会产生很大的影响。我鼓励您在现实条件下对其进行基准测试,看看哪种方法效果最好。