MongoDB不同的值

时间:2012-06-09 22:33:07

标签: perl mongodb

我使用此代码在数据库中查找特定文本然后我将加载到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";
    }
    }

1 个答案:

答案 0 :(得分:0)

distinct命令当然可以工作(似乎确实如此),所以它很好。它也可能是执行此操作的最快方法(实现只打开适当的索引,从中读取并填充哈希表,IIRC)。

但请注意,如果不同值的总大小大于BSON大小限制(当前为16MB),则会失败并显示错误。

如果你碰到这个,你将不得不求助于更慢的选择。例如,MapReduce。