运行时错误:MongoDB :: DatabaseError:坏提示
问题描述:
我想拨打hint
method on a MongoDB::Cursor
object。但是,它试图执行查询时会引发异常。请参阅下面的代码示例:运行时错误:MongoDB :: DatabaseError:坏提示
sub some_method_which_returns_cursor {
my $cursor = $collection->find($filter);
if ($hint) {
$cursor->hint({‘some_index’ => 1}); #failing here.
}
if ($sort) {
$cursor->sort($sort);
}
return $cursor;
}
有关正在发生什么以及如何解决此问题的任何想法?
答
哈里什问我通过电子邮件和我会在这里重复我的答案留给后人:给定一个索引名称,或数组引用给予时按键/为了对时
的hint
方法接受一个字符串 :
$cursor->hint("some_index"); # by name
$cursor->hint([field1 => 1, field2 => -1]); # by keys
它也需要一个散列引用,但不要使用,因为现代皮尔斯序列化时随机键顺序,所以你的提示可能不匹配的索引。
+1
顺便说一句,这不适用于MongoDB perl驱动程序版本0.45。虽然工作在v1.8.0。 @xdg – Harish
这是您的真实密码?它是无效的:'$ cursor-> hint({some_index => 1});' – stevieb
不要在程序中使用**'**和**'**作为引号。或者,换句话说,不要使用文字处理器编写程序。另外,什么是**如果**?!什么是**定义 - 或**(即,**'//'**)在语句后执行? –
@Borodin'ghd'显然是我输入*'the' *的方式。 –