我需要一种搜索方法,但不包括已经在用户面前的屏幕上的 _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))));
但是,这只会阻止整个事情的运行。