第一个/最后一个记录不是来自cakephp + mongo中的数据

时间:2015-02-04 07:47:00

标签: mongodb cakephp

我正在使用mongodb插件 ichikaway/cakephp-mongodb

和cakephp 2.6.1

收集后的数据 enter image description here link to image

在cakephp中,它向我展示了 enter image description here link to image

Cakephp控制器端代码:

$params = array(
            'fields' => array('title', 'body', 'hoge'),
            //'fields' => array('Post.title', ),
            //'conditions' => array('title' => 'hehe'),
            //'conditions' => array('hoge' => array('$gt' => '10', '$lt' => '34')),
            //'order' => array('title' => 1, 'body' => 1),
             'order' => array('_id' => "DESC"),
             'limit' => 35,
             'page' => 1,
        );
        $results = $this->Post->find('all', $params);

我想从mongodb中提取每一个数据但是这个插件没有提供我最后的数据。 我检查了正确的计数。

2 个答案:

答案 0 :(得分:0)

我是否认为在将PHP驱动程序升级到1.6.0后才出现此错误? CakePHP模块使用MongodbSource::read()中的hasNext() and getNext(),它将受到1.6.0中引入的错误(PHP-1382)的影响。修复程序已合并,应在2015-02-05(明天)发布为1.6.1。

有关其他背景信息,请参阅有关该主题的上一个答案:https://stackoverflow.com/a/28304142/162228

答案 1 :(得分:0)

在MongodbSource.php文件中,我做了一些简单的改动 在阅读功能

有一个代码

public function read(Model $Model, $query = array(), $recursive = null) {
........
while ($return->hasNext()) {
                $mongodata = $return->getNext(); 

将其更改为

public function read(Model $Model, $query = array(), $recursive = null) {
    ........
foreach ($return as $data) {
                $mongodata = $data;

和yurekaaaa,它的工作正常。