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