增
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: 对数组字段进行拆分,拆分为多个结果
本文详细介绍了MongoDB数据库的基本操作,包括增删改查及聚合查询。通过示例代码展示了如何使用Promise处理异步操作,如创建数据对象、删除记录、更新文档以及统计查询结果。此外,还涵盖了联表查询和条件过滤等高级用法。

1511

被折叠的 条评论
为什么被折叠?



