Has usado un entero normal (MongoInt32) como _id
campo. Y MongoInt32 no es lo mismo que MongoID. Son dos clases diferentes. Se supone que debes eliminarlo con:
$collection->remove( array( '_id' => new MongoInt32(1) ) );
Información adicional:
MongoId se usa como valor para un _id
campo si no establezca un valor usted mismo, como con:
$collection->insert( array( 'cust_id' => 'abc124' ) );
Si recupera este documento y var_dump() verá:
array(2) {
'_id' =>
class MongoId#6 (1) {
public $$id =>
string(24) "51ee74e944670a09028d4fc9"
}
'cust_id' =>
string(6) "abc124"
}
La nota en los documentos significa que no puede eliminar ese documento ahora con:
$collection->remove( array( '_id' => '51ee74e944670a09028d4fc9' ) );
Pero en su lugar necesitará usar:
$collection->remove( array( '_id' => new MongoID( '51ee74e944670a09028d4fc9' ) ) );
Como último punto, me gustaría plantear que realmente no tiene que usar new MongoInt32(1)
en primer lugar, puedes usar:
$document = array (
'_id' => 1,
'cust_id' => 'abc124'
);
Solo necesita MongoInt32/MongoInt64 en caso de que esté en una plataforma de 32 bits (o Windows) y necesite manejar grandes números.