Мне нужен способ поиска, но не включать _id, который уже находится на экране перед пользователем. Например, у меня есть 3 любимых профиля, которые пользователь уже просматривает.
На этой странице у меня есть заголовок под названием «Моя семья». Затем я запустил этот поиск:
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;
}
}
И он возвращает всех домашних животных в мою семью, даже зная, что я уже показываю их. Поэтому я хочу исключить этот _id из поиска.
Я думал что-то вроде этого.
$cursor = $collection->find(array('owner' => new MongoId($owner), '$not'=>array('_id'=>new MongoId(INSERT ID HERE))));
Однако, это просто прекращает работу всего.
Это хороший вопрос, и мне нужно эта информация тоже, но вы можете подумать об этом на стороне клиента, чтобы сохранить сервер из (очень маленькой) нагрузки при рассмотрении объекта _id? –