Heim > Fragen und Antworten > Hauptteil
想用一条语句查询三条记录,包括当前记录、上一条、下一条,怎么实现?
只知道当前记录的_id,需要按另外一个时间字段排序取相临的记录。
PHPz2017-05-02 09:24:41
很难用简单的语句,至少我范围感觉不现实,
我可以提供一下思路:
用db.coll.find({},{"只显示一列数据,或者几列,越少越好,数据量大了就不好使了,因为后面要排序操作"})$natual:1 排序后,赋值到cursor,然后forEach() 里面用两个变量保存当前一条数据,和上一条数据,直到匹配条件成功,然后就可以返回前后和当前三条数据了。
可能还有别的更牛逼的内部办法,欢迎板砖
另外一种办法,是基于上面的,定期 $natual:1出来的数据,追加一列有序数字或者字符,然后保存到另外一张新表,然后根据新表的ID ,查询新表匹配的数据,最后通过查出来的 有序的添加的那列KEY:value 再查询一次前后数据就出来了。