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