增
model.create(params).then(data => {}).catch(error => {})
params 参数可以是一个数据对象,也可以是数据数组(创建多条数据)
删
model.remove(queryParams,function(error){})
queryParams 参数是查询参数
改
model.findOne(queryParams).then(data => {
Object.assign(data, updateParams)
data.save().then(() => {}).catch(error => {})
})catch(error => {})
查
查找一条符合查询条件的数据:
model.findOne(queryParams).then(data => {}).catch(error => {})
查找全部符合查询条件的数据:
model.find(queryParams).then(data => {}).catch(error => {})
统计查询结果的数量
model.count(queryParams).then(count => {}).catch(error => {})
聚合查询
model.aggregate([
{$match: queryParams},
{$project: projectParams},
{$group: groupParams},
{$skip: skipParams},
{$limit: limitParams},
{$sort: sortParams},
{$lookup: { from: 联查的表名, localField: 本表要联查的字段名, foreignField: 联查的表的字段名, as: 联查结果的名称 }},
{$unwind: "$需要展开的字段名"},
{$lookup: { from: 联查的表名, let: {重命名字段名称:本表要联查的字段名}, pipeline: [
{$match: {
$expr: {
$and: [
{$eq: [字段名称, 对比值]},
....
]
}
}},
...
], as: 联查结果的名称 }},
]).then(data => {}).catch(error => {})
$match: 查询条件
$project: 重构上一步查询结果字段
$group: 对上一步结果进行分组,一般用于统计
$skip: 对查询结果跳过指定条数,返回剩下的数据
$limit: 限制查询结果的条数
$sort: 对查询结果进行排序
$lookup: 联表查询,如联表查询时需要多个条件查询可使用上述示例第二 个 lookup,并且可以在 pipeline 中再次使用多个聚合语句
$unwind: 对数组字段进行拆分,拆分为多个结果