2010-09-20 5 views
8

estoy corriendo este código:php mongodb: La llamada al método definido MongoDB :: insert() en db.php

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

    $collection->insert($content); 

Estoy intentando probar mongohq por sólo la creación de una colección aleatoria.

estoy recibiendo este error:

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

hago que el cliente instalado por lo que yo sé:

alt text

También estoy corriendo PHP 5.2.6

¿Cuál es el problema? Gracias.

Respuesta

12

Cada DB contiene una o muchas colecciones. Está intentando insertar en el DB, en lugar de la colección.

No he usado esa extensión, pero ese método no existe en la clase MongoDB según la documentación. En cambio, es MongoCollection::insert. Que podemos encontrar en una colección de: (. La línea comentada es equivalente a la línea debajo de ella)

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

supongo que usted está haciendo algo como:

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

(Editar: No vi su fragmento de código la primera vez. Eso es precisamente lo que está haciendo.)

Le sugiero que lea el tutorial para obtener más información.

+1

¿No está dbname al final del nuevo Mongo the db? Entonces, ¿no tendría que seleccionarlo dos veces? – JSNewbie

+0

No lo inserta en un db. Usted inserta en una colección. La instancia '$ mongo' es solo una conexión a un servidor mongo. La primera propiedad es el nombre de la base de datos. El segundo es el nombre de la colección. – Matthew

Cuestiones relacionadas