想用一條語句查詢三條記錄,包括當前記錄、上一條、下一條,怎么實現?只知道當前記錄的_id,需要按另外一個時間字段排序取相臨的記錄。
1 回答

慕妹3242003
TA貢獻1824條經驗 獲得超6個贊
很難用簡單的語句,至少我范圍感覺不現實,
我可以提供一下思路:
用db.coll.find({},{"只顯示一列數據,或者幾列,越少越好,數據量大了就不好使了,因為后面要排序操作"})$natual:1 排序后,賦值到cursor,然后forEach() 里面用兩個變量保存當前一條數據,和上一條數據,直到匹配條件成功,然后就可以返回前后和當前三條數據了。
可能還有別的更牛逼的內部辦法,歡迎板磚另外一種辦法,是基于上面的,定期 $natual:1出來的數據,追加一列有序數字或者字符,然后保存到另外一張新表,然后根據新表的ID ,查詢新表匹配的數據,最后通過查出來的 有序的添加的那列KEY:value 再查詢一次前后數據就出來了。
- 1 回答
- 0 關注
- 2187 瀏覽
添加回答
舉報
0/150
提交
取消