PHP mongodb: Call to undefined method MongoDB:: insert() in db.php

j'exécute ce code:

    $db = new Mongo("mongodb://user:pw@flame.mongohq.com:27081/dbname");
    $collection = $db->foobar;

    $collection->insert($content);

j'essaie de tester mongohq en créant juste une collection aléatoire.

je reçois cette erreur:

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

j'ai le client installé autant que je sache:

alt text

j'exécute aussi php 5.2.6

Quel est le problème? Grâce.

8
demandé sur JSNewbie 2010-09-20 05:45:38

1 réponses

chaque DB contient une ou plusieurs collections. Vous essayez d'insérer dans le DB, au lieu de la collection.

je n'ai pas utilisé cette extension, mais cette méthode n'existe pas dans le MongoDB classe selon la documentation. Au lieu de cela, il est MongoCollection::insert. Vous obtenez une collection par:

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

(la ligne commentée est équivalente à la ligne sous-jacente.)

je suppose que vous faites quelque chose comme:

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

(Edit: je n'ai pas vu ton code a été copié la première fois. C'est précisément ce que vous êtes en train de faire.)

je vous suggère de lire le tutoriel pour plus d'informations.

12
répondu Matthew 2010-09-20 04:00:22