6

http://api.mongodb.org/perl/current/MongoDB/Examples.htmlを読みましたが、Perl の mongoDB からのドキュメントのみのようです。perl で mongoDB からクエリ結果を取得するにはどうすればよいですか? ハッシュに言ってみましょう。これまでのところ、dbへの接続に成功しています。コレクションに挿入することができました。selectクエリを発行して、返されたデータをハッシュなどに変換するにはどうすればよいですか?

アップデート:

Example of my data
{
 "_id" : ObjectId("asdhgajsdghajgh"),
 "country" : "USA"
 "city" : "Boston"
}

{
 "_id" : ObjectId("asdhgajsdghajgh"),
 "country" : "USA"
 "city" : "Seattle"
}

{
 "_id" : ObjectId("asdhgajsdghajgh"),
 "country" : "Canada"
 "city" : "Calgary"
}

My code

my $cursor = $my_collection
    ->find({ country => 1 }) 
    ;
while (my $row = $cursor->next) {
    print "$row\n";
}

このコードは出力を生成しません。私は基本的にコレクション全体を繰り返し処理し、ドキュメントごとに読みたいと思っています。私が間違っているのかわかりません。上記のコードを使用しました。$cur->next を $cursor->next に変更しましたが、これはタイプミスだと思います。これまでのすべての回答に感謝します。

4

1 に答える 1

10

それは公式のドキュメントではありません。CPAN に向かいます。

結果の反復は、DBI の方法と非常によく似ています。

use Data::Printer;
use MongoDB;

# no query is performed on initialization!
my $cursor = $collection
    ->find({ active => 1, country => 'Canada' }) # filter "active" records from Canada
    ->sort({ stamp => -1 }) # order by "stamp" attribute, desc.
    ->limit(1000);          # first 1000 records

# query & iterate
while (my $row = $cur->next) {
    # it is 'p', from Data::Printer!
    p $row;
}
于 2013-01-15T23:34:48.670 に答える