J'ai besoin d'un moyen de rechercher mais ne pas inclure un _id qui est déjà sur l'écran en face de l'utilisateur. Par exemple, j'ai 3 profils animaux que l'utilisateur voit déjà.
Sur cette page, j'ai un titre intitulé Ma famille. Je lance alors cette recherche:
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;
}
}
Et il renvoie tous les animaux de compagnie dans ma famille même sachant que j'en montre déjà un. Donc, je veux exclure ce _id de la recherche.
Je pensais à quelque chose comme ça.
$cursor = $collection->find(array('owner' => new MongoId($owner), '$not'=>array('_id'=>new MongoId(INSERT ID HERE))));
Cependant, cela arrête simplement le fonctionnement.
Ceci est une bonne question, et je devais cette information aussi, mais vous pourriez envisager de faire cela du côté client pour sauver le serveur de la (très petite) charge de considérer l'objet _id? –