分页查询
基本语法
db.collection.find({查询条件})
.sort({排序字段: 排序方式})
.skip(跳过的行数)
.limit(每页条数)
参数说明
- 排序方式:1 表示升序,-1 表示降序
- 跳过行数:计算公式为
(页码-1) * 每页条数
- 限制条数:指定每页返回的文档数量
性能优化
- 避免在大数据集上使用大数值
skip(),会影响性能
- 替代方案:使用范围查询(如
_id > last_id)配合 limit() 实现分页
- 为排序字段添加索引提高查询效率
数据更新
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>
}
)
更新操作符
$set:设置字段值
$unset:删除字段
$inc:增加字段值
$push:向数组添加元素
WriteConcern 写入机制
{
w: <value>,
j: <boolean>,
wtimeout: <number>
}
w 参数
w=1(默认):要求得到主节点确认
w=0:“fire and forget” 模式
w=majority:要求写入多数节点
j 参数
j=true:要求数据写入磁盘 journal 日志后才返回确认
wtimeout 参数
数据删除
db.collection.remove(
<query>,
{
justOne: <boolean>
}
)