我正在将link中的mongoDB库与CI配合使用。我想加入两个表,所以我发现可以使用查找
我正在使用以下代码
$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
在这种情况下如何添加光标
我检查了其他类似的答案,但在这种情况下没有得到如何添加光标的方法
答案 0 :(得分:1)
您可以使用here中的另一个codeigniter库。该库允许您传递聚合选项。
您可以尝试下面的聚合查询。将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))
);
更多信息here
答案 1 :(得分:0)
https://docs.mongodb.com/manual/reference/command/aggregate/
指定一个文档,其中包含控制创建的选项 光标对象。
在3.6版中进行了更改:MongoDB 3.6删除了聚合的使用 没有光标选项的命令,除非该命令包含 说明选项。除非您包含解释选项,否则必须 指定光标选项。
要使用默认批处理大小指示光标,请指定光标:{}。
要指示具有非默认批处理大小的游标,请使用游标:{ batchSize:}。