0

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

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

4

1 回答 1

1

当您调用时find,它返回一个游标对象,它将迭代器方法委托给MongoDB::QueryResult。当您next对该事物执行操作时,它会懒惰地一次返回一个文档。该文档已经是完整的数据集。这可能已经是一个哈希引用(或者一个对象,我不知道)。

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

如果您想要一次全部使用它们,您可以使用该all方法获取一个列表,然后您可以将其放入一个数组并在您方便时使用。这不会按需加载。

my @objects = $cursor->all;
于 2017-06-01T06:08:33.483 回答