Hai usato un intero normale (MongoInt32) come _id
campo. E MongoInt32 non è la stessa cosa di MongoID. Sono due classi diverse. Dovresti eliminarlo con:
$collection->remove( array( '_id' => new MongoInt32(1) ) );
Informazioni aggiuntive:
MongoId viene utilizzato come valore per un _id
campo se non imposta tu stesso un valore, ad esempio con:
$collection->insert( array( 'cust_id' => 'abc124' ) );
Se recuperi questo documento e var_dump() vedrai:
array(2) {
'_id' =>
class MongoId#6 (1) {
public $$id =>
string(24) "51ee74e944670a09028d4fc9"
}
'cust_id' =>
string(6) "abc124"
}
La nota nei documenti significa che non puoi rimuovere quel documento ora con:
$collection->remove( array( '_id' => '51ee74e944670a09028d4fc9' ) );
Ma invece dovrai usare:
$collection->remove( array( '_id' => new MongoID( '51ee74e944670a09028d4fc9' ) ) );
Come ultimo punto vorrei sottolineare che non è necessario utilizzare new MongoInt32(1)
in primo luogo, puoi semplicemente usare:
$document = array (
'_id' => 1,
'cust_id' => 'abc124'
);
Hai solo bisogno di MongoInt32/MongoInt64 nel caso in cui ti trovi su una piattaforma a 32 bit (o Windows) e devi gestire grandi numeri.