【发布时间】:2013-02-07 20:08:59
【问题描述】:
我需要一种搜索方式,但不包括已经在用户面前的屏幕上的 _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 的(非常小的)负载?跨度>