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
}
}
})

最新文章

  1. 百度云 + GIT
  2. 第8章 BOM
  3. <转>简单之美——系统设计黄金法则
  4. HDU 3466 Proud Merchants(01背包问题)
  5. WPF线程(Step1)——Dispatcher
  6. windows下mongodb安装与使用整理
  7. C++ 字符串操作常见函数
  8. Android多线程异步处理:AsyncTask 的实现原理
  9. hdu 3682
  10. python3 第二章 - 第一个程序
  11. 项目总结1——excel导出相关问题
  12. pyqt5 动画学习(二) 改变控件颜色
  13. Linux之软链接与硬链接
  14. angular.isFunction()
  15. java——类、对象、方法
  16. web前端(5)—— 常用标签2
  17. Intellij IDEA创建git,maven的SpringMVC项目
  18. JavaScript:改变 HTML 图像
  19. MySQL中正则表达式
  20. 考勤管理系统V1.0.3

热门文章

  1. 基于GenericAPIView以及五个视图扩展类写接口
  2. composer 安装 laravel指定版本
  3. 解决centos7 yum和wget都不能使用
  4. react中Hooks的理解和用法
  5. 微信小程序自定义导航栏机型适配
  6. Excel操作技巧
  7. GitHub 入门 与 2023年2月18日10:29:02
  8. HACLABS: NO_NAME
  9. vs修改默认端口
  10. PG统计信息和系统表