Jestem pewien, że musisz użyć MongoId
obiekt, np.
$item = $collection->findOne(array(
'_id' => new MongoId('4e49fd8269fd873c0a000000')));
Notatki na stronie Zapytania są trochę tępe, ale wspominają...
O ile użytkownik nie określił inaczej, pole _id jest MongoId. Najczęstszym błędem jest próba użycia ciągu w celu dopasowania MongoId. Należy pamiętać, że są to dwa różne typy danych i nie będą do siebie pasować w taki sam sposób, w jaki ciąg "array()" nie jest tym samym, co pusta tablica