2010-09-20 42 views
8

調用未定義的方法的MongoDB ::插入()我運行這段代碼:PHP的MongoDB:在db.php中

$db = new Mongo("mongodb://user:[email protected]:27081/dbname"); 
    $collection = $db->foobar; 

    $collection->insert($content); 

我想通過只創建一個隨機採集測試mongohq。

我得到這個錯誤:

Fatal error: Call to undefined method MongoDB::insert() in /ajax/db.php on line 24 

我必須就我知道安裝在客戶端:

alt text

我也運行PHP 5.2.6

有什麼問題?謝謝。

回答

12

每個DB包含一個或多個集合。您正試圖插入數據庫,而不是集合。

我還沒有使用該擴展名,但根據文檔,該方法在MongoDB類中不存在。相反,它是MongoCollection::insert。您可以通過在得到的集合:(該註釋行等同於它下面的線)

// $collection = $mongo->selectDB("foo")->selectCollection("bar"); 
$collection = $mongo->foo->bar; 
$collection->insert(array('x' => 1)); 

我猜你正在做的事情,如:

$collection = $mongo->foo; 
$collection->insert(array('x' => 1)); 

(編輯:我沒有看到你的第一次代碼片段,這正是你在做什麼。)

我建議你閱讀tutorial欲知更多信息。

+1

是不是dbname在新的Mongo的數據庫的末尾?所以我不必選擇兩次? – JSNewbie 2010-09-20 04:12:28

+0

您不要插入數據庫。你插入一個集合。 '$ mongo'實例只是一個到mongo服務器的連接。第一個屬性是數據庫的名稱。第二個是集合的名稱。 – Matthew 2010-09-20 04:17:32