Ho bisogno di un modo per cercare ma non include un _id che è già sullo schermo di fronte all'utente. Ad esempio, ho 3 profili di animali domestici che l'utente sta già visualizzando.
In quella pagina ho un titolo chiamato La mia famiglia. Quindi eseguo questa ricerca:
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;
}
}
E restituisce tutti gli animali domestici nella mia famiglia pur sapendo che ne sto già mostrando uno. Quindi voglio escludere questo _id dalla ricerca.
Ho pensato qualcosa del genere.
$cursor = $collection->find(array('owner' => new MongoId($owner), '$not'=>array('_id'=>new MongoId(INSERT ID HERE))));
Tuttavia, ciò interrompe completamente l'esecuzione.
Questa è una buona domanda, e avevo bisogno anche questa informazione, ma potresti considerare di farlo sul lato client per salvare il server dal carico (molto piccolo) di considerare l'oggetto _id? –