nestjs mongoose关联查询
2024-10-21 11:38:41
nestjs,mongoose关联查询网上搜不到了,查看了nest/mongoose.d.ts文件,分享一波
user.model.ts
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose"
import { Document, Types } from 'mongoose';
import { ApiProperty } from '@nestjs/swagger' @Prop({ type: Types.ObjectId, ref: 'Role', default: null })//一个角色
@ApiProperty({
description: '角色id',
})
role: any; @Prop({ type: Types.ObjectId, ref: 'Deptbase', default: null })//一个部门
@ApiProperty({
description: '部门id',
})
dept: any;
role.model.ts
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose"
import { Document, Types } from 'mongoose';
import { ApiProperty } from '@nestjs/swagger' @Prop({ type: [Types.ObjectId], default: [], ref: "Menu" })//多个权限
@ApiProperty({
description: '权限id',
})
authority: any[];
menu.model.ts:menu基本菜单信息,在此省略
------查询方法--------
1.查询角色和部门
this.userModel.paginate(queryParams, {
populate: [{
path: 'role', select: '_id name', match: { "isDelete": false
}
},
{
path: 'dept', select: '_id name code'
}],
select: '_id uid name status role dept creator createdAt',//显示字段,不懂查mongoose官网populate
page: page > 0 ? page : 1,
limit: size > 0 ? size : 20,
sort: '-createdAt'
})
path中的role,dept字段,user.model中有定义
2.查角色拥有的权限
this.roleModel.findOne({ _id: Types.ObjectId(roleId) }, { _id: 1, authority: 1 }).populate({
path: 'authority',//authority在role.model.ts中定义
select: "-creator -createTime -createdAt -updatedAt -opreator -isDelete",//加-为不显示字段
match: {
"isDelete": false,
"appId": Types.ObjectId(appId)
},
options: {
$sort: {
createdAt: 1
}
}
})
最新文章
- 百度云 + GIT
- 第8章 BOM
- <;转>;简单之美——系统设计黄金法则
- HDU 3466 Proud Merchants(01背包问题)
- WPF线程(Step1)&mdash;&mdash;Dispatcher
- windows下mongodb安装与使用整理
- C++ 字符串操作常见函数
- Android多线程异步处理:AsyncTask 的实现原理
- hdu 3682
- python3 第二章 - 第一个程序
- 项目总结1——excel导出相关问题
- pyqt5 动画学习(二) 改变控件颜色
- Linux之软链接与硬链接
- angular.isFunction()
- java——类、对象、方法
- web前端(5)—— 常用标签2
- Intellij IDEA创建git,maven的SpringMVC项目
- JavaScript:改变 HTML 图像
- MySQL中正则表达式
- 考勤管理系统V1.0.3