MongoDB遊標使用:遍歷查詢結果的正確姿勢

MongoDB遊標是查詢結果的“導航工具”,核心特點是**惰性執行**(僅遍歷時觸發查詢)和迭代器特性(每次返回一條數據,適合大數據量)。獲取遊標通過`find()`方法,支持條件、排序、限制等參數,如`find(查詢條件, 字段投影).sort().limit()`。 遍歷遊標有三種常用方式:`forEach()`(簡單,適合小數據量)、`toArray()`(全部加載內存,僅小數據量,大數據量禁用)、`while`循環+`next()`(手動控制,適合大數據量)。 需注意:大數據量忌用`toArray()`,避免內存溢出;遊標默認10分鐘超時,可設`maxTimeMS`控制;數據一致性爲快照讀;分頁勿用`skip()`,改用`_id`錨點定位;大數據量應分批迭代,控制`batchSize`。 總結:小數據用`forEach()`,大數據用`while+next()`,避用`toArray()`和`skip()`,掌握這些可高效安全遍歷數據。

閱讀全文
MongoDB排序與投影:查詢結果如何“好看又好用”

MongoDB中,排序(Sorting)和投影(Projection)可優化查詢結果。排序通過`find().sort({字段: 1/-1})`實現,`1`升序、`-1`降序,支持多字段排序(如`sort({age:1, score:-1})`)。投影用`find(條件, {字段: 1/0})`控制字段,`1`保留、`0`排除,需顯式設`_id:0`排除默認返回的`_id`。二者可組合,如查詢“年齡>17的學生,按年齡升序,只顯示name和age”,結果既有序又精簡。關鍵點:排序方向爲1/-1,投影需手動排除`_id`,多場景可靈活組合。

閱讀全文