聚合操作失败:localhost:27017:'cursor'选项是必需的,但带有 explain 参数的聚合除外



我正在使用来自CI链接的mongoDB库。我想连接两个表,所以我发现可以使用查找来完成

我正在为它使用以下代码

$this->load->library('mongo_db',array('activate' => 'default'),'mongo_db');
$res = $this->mongo_db->aggregate(
'firstTable',
array(
'$lookup' => array(
'from' => 'secondTable',
'localField' => '_id',
'foreignField' => 'foreignKey',
'as' => 'user',                 
)               
));
echo '<pre>'; print_r($res);

它给出的错误为

Aggregation operation failed: localhost:27017: The 'cursor' option is required, except for aggregate with the explain argument

在这种情况下如何添加光标

我检查了其他类似的答案,但不知道如何在这种情况下添加光标

您可以从此处使用另一个代码点火器库。此库允许您传递聚合选项。

可以尝试以下聚合查询。将 batchsize 设置为 0 以使 mongodb 使用服务器的默认批量大小。

$res = $this->mongo_db->aggregate(
'firstTable',
array(
'$lookup' => array(
'from' => 'secondTable',
'localField' => '_id',
'foreignField' => 'foreignKey',
'as' => 'user',                 
)                
),
array('cursor' => array('batchSize' => 0))
);

更多信息在这里

https://docs.mongodb.com/manual/reference/command/aggregate/

指定包含控制创建的选项的文档 游标对象。

在 3.6 版更改: MongoDB 3.6 删除了聚合的使用 不带光标选项的命令,除非该命令包含 解释选项。除非包含解释选项,否则必须 指定光标选项。

要指示具有默认批大小的游标,请指定游标:{}。

若要指示具有非默认批大小的游标,请使用游标:{ 批次大小:}。

相关内容

  • 没有找到相关文章

最新更新