2010-10-08 52 views
3

我正在爲我的客戶創建一個CMS,以便與他的照片一起工作,並在他的網站上銷售它們。對於CMS端以及前端,這兩者都將是AJAX,那麼獲得JSON提要設置會很好,這樣我就可以使用相同的提要用JS生成新的「頁面」和「視圖」 。如何從MongoDB集合創建JSON訂閱源

因此,這個示例飼料將有像{[名稱:'照片',描述:'lorem ipsum ...'],[...]},然後與jQuery或JS我可以創建一個表他的照片,頁面等。我怎樣才能爲自己設置?

我應該只是創建一個PHP文件,從MongoDB獲取所有數據將它放入數組,而不是將數組轉換爲JSON?

回答

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); 

這就是我如何返回JSON frrom Mongo。

+0

太棒了,我必須在我回家時檢查一下。似乎它會工作。另外,感謝讓我知道有一個hasNext()函數。仍在學習MongoDB PHP驅動:) – 2010-10-08 16:53:37

+0

這似乎工作得很好,但爲什麼它缺少一些像_id一樣的東西,而且我的集合中有一個「文件」項,並且存儲了從GridFS存儲的_id,但這也是沒有出現? – 2010-10-11 04:03:28

+0

未經測試,但我的補充應該工作。 – Gazler 2010-10-11 07:37:33

0

這是我做的:

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

這樣我確保我有一個可以正確調用的對象數組:

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