所以,我正在从 MongoDB 中检索一些值。我现在该find
方法返回 a cursor
,它会延迟加载查询结果。我想将游标存储为哈希,但我可以找到任何方法。当然,您可以遍历光标并自行填充,但我对自动化方式感兴趣。例如,在 Python 中,您可以这样做:myList = list(col.find())
以列表的形式获取所有光标项。
是否有可能在 Perl 中做类似的事情?
当您调用时find
,它返回一个游标对象,它将迭代器方法委托给MongoDB::QueryResult。当您next
对该事物执行操作时,它会懒惰地一次返回一个文档。该文档已经是完整的数据集。这可能已经是一个哈希引用(或者一个对象,我不知道)。
use Data::Dumper;
while (my $object = $cursor->next) {
print Dumper $object;
}
如果您想要一次全部使用它们,您可以使用该all
方法获取一个列表,然后您可以将其放入一个数组并在您方便时使用。这不会按需加载。
my @objects = $cursor->all;