Vous avez utilisé un entier normal (MongoInt32) comme _id
domaine. Et MongoInt32 n'est pas le même que MongoID. Ce sont deux classes différentes. Vous êtes censé le supprimer avec :
$collection->remove( array( '_id' => new MongoInt32(1) ) );
Informations supplémentaires :
MongoId est utilisé comme valeur pour un _id
champ si vous ne le faites pas définissez vous-même une valeur, par exemple avec :
$collection->insert( array( 'cust_id' => 'abc124' ) );
Si vous récupérez ce document, et var_dump() que vous verrez :
array(2) {
'_id' =>
class MongoId#6 (1) {
public $$id =>
string(24) "51ee74e944670a09028d4fc9"
}
'cust_id' =>
string(6) "abc124"
}
La note dans la documentation signifie que vous ne pouvez pas supprimer ce document maintenant avec :
$collection->remove( array( '_id' => '51ee74e944670a09028d4fc9' ) );
Mais à la place, vous devrez utiliser :
$collection->remove( array( '_id' => new MongoID( '51ee74e944670a09028d4fc9' ) ) );
Comme dernier point, je voudrais souligner que vous n'avez pas vraiment besoin d'utiliser new MongoInt32(1)
en premier lieu, vous pouvez simplement utiliser :
$document = array (
'_id' => 1,
'cust_id' => 'abc124'
);
Vous n'avez besoin de MongoInt32/MongoInt64 que si vous êtes sur une plate-forme 32 bits (ou Windows) et que vous devez gérer de grands nombres.