3

我正在使用此代码将特定文本查找到数据库中,然后我将使用 mojolicious 加载到页面中。这种方法好还是快?

use MongoDB;
    use Data::Dump q(dump);
        my $connection = MongoDB::Connection->new(host => 'localhost', port => 27017);
        my $database   = $connection->test;
    my $col = $database->user;

    my $r3 = $database->run_command([
        "distinct" => "person",
        "key"      => "text",
        "query"    =>""
    ]);


    for my $d ( @{ $r3->{values} } ) {
    if ($d=~ /value/){
        print "D: $d\n";
    }
    }
4

1 回答 1

0

distinctcommand 当然可以工作(而且似乎确实可以),所以很好。这也可能是最快的方法(实现只是打开适当的索引,从中读取并填充哈希表,IIRC)。

但是请注意,如果不同值的总大小大于 BSON 大小限制(当前为 16MB),它将失败并出现错误。

如果您遇到这种情况,您将不得不求助于较慢的替代方案。以 MapReduce 为例。

于 2012-06-10T09:12:55.623 回答