Mongoose常用语句

本文详细介绍了MongoDB数据库的基本操作,包括增删改查及聚合查询。通过示例代码展示了如何使用Promise处理异步操作,如创建数据对象、删除记录、更新文档以及统计查询结果。此外,还涵盖了联表查询和条件过滤等高级用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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: 对数组字段进行拆分,拆分为多个结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值