条件、排序、分页和投影
本节学习更接近真实接口的查询。
一、比较查询
查询年龄大于等于 18 的用户:
常见比较操作符:
示例:
二、多个条件
多个字段默认就是 AND:
表示:
三、OR 查询
适合登录时用户名或邮箱二选一查询。
四、排序
按创建时间倒序:
按年龄升序,再按创建时间倒序:
五、分页
第一页,每页 10 条:
第二页:
计算公式:
数据量很大时,深分页 skip 会越来越慢。后续可以使用基于游标的分页,例如按 createdAt 或 _id 继续查询。
六、投影
只返回需要的字段:
排除内容字段:
接口列表页通常不返回正文大字段,只返回标题、摘要、作者和时间。
七、正则查询
查询标题包含 MongoDB 的文章:
正则查询要谨慎使用。
如果对大集合做无索引正则查询,可能非常慢。搜索功能更复杂时,可以考虑全文索引或专门搜索引擎。

