如何从MongoDB集合创建JSON Feed

3
我正在为客户创建一个CMS,以便处理他的照片并在网站上销售。对于CMS端和前端,这两者都将是全AJAX,设置一个JSON feed会很好,这样我就可以使用同一个feed来生成新的“页面”和“视图”。
因此,这个示例feed将包含如 {[name:'A Photo',description:'lorem ipsum...'],[...]},然后使用jQuery或JS,我可以创建所有照片、页面等的表格。我该如何为自己设置这个?
我应该只是创建一个PHP文件,从MongoDB中获取所有数据,将其放入数组中,然后将数组转换为JSON吗?
3个回答

9
    $cursor = $this->collection->find($params);
    $return = array();
    $i=0;
    while( $cursor->hasNext() )
    {

        $return[$i] = $cursor->getNext();
        // key() function returns the records '_id'
        $return[$i++]['_id'] = $cursor->key();
    }
    return json_encode($return);

这就是我从Mongo返回JSON的方式。

太棒了,回家後我得檢查一下這個。看起來它會有效。還有,謝謝你告訴我有一個hasNext()函數。我還在學習MongoDB PHP驅動程序 :) - Oscar Godson
这似乎运行得相当不错,但为什么它缺少一些东西,比如_id,并且我在我的集合中有一个“文件”项,其中包含我从GridFS存储的_id,但也没有显示出来? - Oscar Godson
注意:未定义属性:MongoCursor::$key,位于/var/www/extextures.com/dashboard/functions.php的第51行。-- 这是我得到的内容? - Oscar Godson

1

0

这是我的工作内容:

$data = json_decode(json_encode(iterator_to_array($cursor, true)));

这样我可以确保我拥有一个对象数组,你可以正确地调用:

foreach($data as $doc){
    echo 'title:'.$doc->title.'<br>';   
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接