replicated - mongodb $ no_id
replicated to allow failover in mongodb (2)
Debe hacer $ne
(no igual) para asegurarse de que la mascota actual que está viendo quede excluida de la búsqueda por parte del propietario.
Ejemplo en el caparazón de mongo
:
var viewingPetId = ObjectId("515535b6760fe8735f5f6899");
var ownerId = ObjectId("515535ba760fe8735f5f689a");
db.mypet.find(
{
_id: { $ne: viewingPetId },
owner: ownerId
}
)
Necesito ausentarme para buscar pero no incluir un _id que ya está en la pantalla frente al usuario
por ejemplo, tengo 3 perfiles de mascota uno que el usuario ya está viendo
En esa página tengo un encabezado llamado Mi Familia. Luego ejecuto esta búsqueda
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;
}
}
y devuelve todas las mascotas de mi familia aun sabiendo que ya estoy mostrando una. Así que quiero excluir ese _id de la búsqueda podría ayudar a alguien aquí.
Pensé algo como esto.
$cursor = $collection->find(array(''owner'' => new MongoId($owner), ''$not''=>array(''_id''=>new MongoId(INSERT ID HERE))));
sin embargo, eso solo impide que todo se ejecute
Use $ne
como (note que no es necesario usar ObjectId()
, la cadena se transferirá automáticamente a ObjectId
):
db.organizations.find({"_id" : {$ne:"563c50e05cdb2be30391e873"}})