【发布时间】:2016-09-02 20:15:56
【问题描述】:
我有一个集合,我使用 $query 从中获取特定类型的用户
然后我需要根据 user_id 升序对它们进行排序并将它们限制为 2000
从这些我需要最大的 user_id,所以我按降序对它们进行排序并限制为 1。
但是第二次排序忘记了 2000 的限制,并从 find() 对整个光标进行排序。
有什么解决方法吗?
$cursor = $collection ->find($query) // too many entries
->sort(array('user_id'=>1)) // go ascending
->limit(2000) // got our limited qouta
->sort(array('user_id'=>-1)) // go descending to get max
->limit(1); // the one with max(user_id)
【问题讨论】:
-
第三行有一个分号。这是复制/粘贴错误还是您的原始代码中也存在?
-
哦对,复制粘贴错误,感谢指出,已更正