想用一條語句查詢?nèi)龡l記錄,包括當(dāng)前記錄、上一條、下一條,怎么實(shí)現(xiàn)?只知道當(dāng)前記錄的_id,需要按另外一個(gè)時(shí)間字段排序取相臨的記錄。
1 回答

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