如何只打印perl中的值,从mongodb返回结果?

时间:2016-08-30 09:53:40

标签: mongodb perl

脚本

#!/usr/bin/perl -w
use MongoDB;
use Data::Printer;
my $client = MongoDB::MongoClient->new();
my $db   = $client->get_database('students');
my $grades = $db->get_collection('grades');
my $stu = $grades->find->fields({student_id=>1,_id=>0});
while (my $row = $stu->next){
p($row);
}

输出:

\ {
    student_id   198
}
\ {
    student_id   199
}

预期输出:

198
199

1 个答案:

答案 0 :(得分:5)

Data::Printer用于人类可读的数据检查。它打印到STDOUT。这是用于在开发期间调试和查看数据结构的。

如果您想要实际访问并将数据打印到屏幕上,您需要自己访问它。 Data :: Printer可以帮助您完成此操作,因为它可以告诉您数据结构的样子。

要打印student_id s(这些键的值),只需print个。

while (my $row = $stu->next){
    print "$row->{student_id}\n";
}

那就是它。请考虑使用say,因为它已包含\n

say $row->{student_id};

您需要执行包含它的use feature 'say';use a version pragma才能执行此操作。