Potrzebuję sposobu na wyszukanie, ale nie włączam _id, który jest już na ekranie przed użytkownikiem. Na przykład mam 3 profile zwierząt domowych, które użytkownik już przegląda.
Na tej stronie mam nagłówek o nazwie Moja rodzina. Następnie uruchomię to wyszukiwanie:
public function fetch_family($owner)
{
$collection = static::db()->mypet;
$cursor = $collection->find(array('owner' => new MongoId($owner)));
if ($cursor->count() > 0)
{
$family = array();
// iterate through the results
while($cursor->hasNext()) {
$family[] = ($cursor->getNext());
}
return $family;
}
}
I zwraca wszystkie zwierzęta w mojej rodzinie, nawet wiedząc, że już je mam. Więc chcę wykluczyć, że jeden _id z wyszukiwania.
Myślałem coś takiego.
$cursor = $collection->find(array('owner' => new MongoId($owner), '$not'=>array('_id'=>new MongoId(INSERT ID HERE))));
Jednak to po prostu zatrzymuje działanie.
To jest dobre pytanie, a ja potrzebowałem te informacje też, ale możesz rozważyć zrobienie tego po stronie klienta, aby zapisać serwer z (bardzo małego) obciążenia rozważenia obiektu _id? –