MongoDB 在 Perl 中要散列的游标

MongoDB cursor to hash in Perl

所以,我正在从 MongoDB 中检索一些值。我现在 find 方法 returns a cursor,它延迟加载查询结果。我想将游标存储为散列,但我可以找到任何方法。当然,您可以遍历光标并自己填充 has,但我对自动方式感兴趣。例如,在 Python 中,您可以这样做:myList = list(col.find()) 以列表形式获取所有游标项。

是否可以在 Perl 中做类似的事情?

当你调用 find 时,它 returns 一个 cursor object, which delegates iterator methods to a MongoDB::QueryResult。当你在那个东西上做 next 时,它会懒惰地一次 returns 一个文档。该文档已经是完整的数据集。这可能已经是一个散列引用(或者一个对象,我不知道)。

use Data::Dumper;
while (my $object = $cursor->next) {
    print Dumper $object;
}

如果您一次想要所有这些,您可以使用 all 方法获得一个列表,然后您可以将其放入一个数组中并在您方便时使用。这不会按需加载。

my @objects = $cursor->all;