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`,多场景可灵活组合。

阅读全文