如何从MongoDB集合创建JSON源

时间:2010-10-08 07:57:00

标签: php ajax json mongodb

我正在为我的客户创建一个CMS来处理他的照片并在他的网站上出售。对于CMS端和前端(两者都是AJAX),获得JSON feed设置是很好的,这样我就可以使用相同的feed用JS生成新的“页面”和“视图”

所以这个示例Feed会有{{name:'A Photo',description:'lorem ipsum ...'],[...]}然后使用jQuery或JS我可以创建一个包含所有他的表格照片,页面等。我该如何为自己设置?

我是否应该创建一个PHP文件,从MongoDB获取所有数据,将其放入数组中,而不是将数组转换为JSON?

3 个答案:

答案 0 :(得分: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的方式。

答案 1 :(得分:1)

我是这样做的:

$cursor = $collection->find($params);
if($cursor->hasNext())
{
    return json_encode(iterator_to_array($cursor));
}

如果你需要_ids,请检查这个答案,看看为什么你没有得到它们: MongoDB PHP: How do I get ObjectId with a JSON feed? (it's blank)

答案 2 :(得分:0)

这就是我的所作所为:

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

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

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