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

sab*_*ber 1 perl mongodb

脚本

#!/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);
}
Run Code Online (Sandbox Code Playgroud)

输出:

\ {
    student_id   198
}
\ {
    student_id   199
}
Run Code Online (Sandbox Code Playgroud)

预期产出:

198
199
Run Code Online (Sandbox Code Playgroud)

sim*_*que 5

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

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

要打印你的student_ids(这些键的值),只需打印print它们.

while (my $row = $stu->next){
    print "$row->{student_id}\n";
}
Run Code Online (Sandbox Code Playgroud)

而已.考虑使用,say因为它包含\n已经.

say $row->{student_id};
Run Code Online (Sandbox Code Playgroud)

您需要执行use feature 'say';使用包含它的版本编译指示来执行此操作.