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

nestjs mongoose关联查询的更多相关文章

  1. mongoose的关联查询 :populate

    mongoose关联查询从3.2版本开始支持 基本用法如下: var studentSchema = new Schema({ name:String, age:String, school:{ ty ...

  2. Mongoose中关联查询populate的使用

    MongoDB中没有join的特性,因此无法使用join进行表的连接和关联查询,在Mongoose中封装了populate方法,在定义一个 Schema 的时候可以指定了其中的字段(属性)是另一个Sc ...

  3. Mongoose如何实现统计查询、关联查询

    [问题]Mongoose如何实现统计查询.关联查询  发布于 4 年前  作者 a272121742  13025 次浏览 最近业务上提出一个需求,要求能做统计,我们设计的文档集,统计可能跨越的文档会 ...

  4. Mongoose 多表(N个表)关联查询aggregate

    Mongoose 多表(N个表)关联查询概述 需求:文章(article),文章分类(articlecate),用户(user)这三个表之间的关系,一篇文章对应文章分类表中的某个类型,对应着用户表中的 ...

  5. Mongoose 两个表关联查询aggregate 以及 Mongoose中获取ObjectId

    Mongoose 两个表关联查询aggregate 通常两个表关联查询的时候,是一种一对多的关系,比如订单与订单详情就是一对多的关系,一个订单下面有多个商品 数据模拟 首先我们先将数据模拟出来,先选择 ...

  6. GraphQL介绍&使用nestjs构建GraphQL查询服务

    GraphQL介绍&使用nestjs构建GraphQL查询服务(文章底部附demo地址) GraphQL一种用为你 API 而生的查询语言.出自于Facebook,GraphQL非常易懂,直接 ...

  7. MongoDB学习day10--Mongoose的populate实现关联查询

    一.Mongoose populate官方文档 https://mongoosejs.com/docs/populate.html 二.Mongoose populate关联查询 1.定义ref va ...

  8. JDBC MySQL 多表关联查询查询

    public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver&q ...

  9. MYSQL基础操作之数据约束与关联查询

    一.MYSQL约束 1.默认值约束,当字段没有插入值的时候,mysql自动给该字段分配默认值. 默认值的字段允许为空. 对默认值字段也可以插入null. CREATE TABLE STUDENT( I ...

  10. C#代码中实现两个表(DataTable)的关联查询(JOIN)

    之前通常都是使用SQL直接从数据库中取出表1和表2关联查询后的数据,只需要用一个JOIN就可以了,非常方便.近日遇到一种情况,两个表中的数据已经取到代码中,需要在代码中将这两个表关联起来,并得到它们横 ...

随机推荐

  1. 《Terraform 101 从入门到实践》 第三章 Modules模块化

    <Terraform 101 从入门到实践>这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看. 模块的概念 模块化是Terr ...

  2. C-02\规范及随机数rand()原理

    小知识点 assert()函数 assert 断言函数,用于在调试过程中捕捉程序的错误.对某种假设条件进行检测,如果条件成立就不进行任何操作,如果条件不成立就捕捉到这种错误,并打印出错误信息,终止程序 ...

  3. Spring02---IOC-Debug查看Bean的实例化过程

    1 简介 springIOC它是对bean进行管理. 我们通常可以通过xml.properties.yml.注解等来配置bean的信息 spring读取这些配置信息,解析,生成BeanDefiniti ...

  4. Html5 canvas创意特效合集

    Canvas就像一块画布,我们可以通过调用脚本在Canvas上绘制任意形状,甚至是制作动画.本文就是收集了很多非常富有创意的一些canvas动画特效例子,这些例子都非常适合大家学习.更多源码可在在这里 ...

  5. 基础雷达图(radar)

    基础雷达图 代码 var chartDom=document.getElementById("radar"); var myChart=echarts.init(chartDom) ...

  6. 用ChatGPT,快速设计一个真实的账号系统

    hi,我是熵减,见字如面. 用ChatGPT,可以尝试做很多的事情. 今天我们就来让ChatGPT做为架构师,来帮我们设计一个账号系统吧. 我的实验过程记录如下,与你分享. 用户故事 首先,我们从用户 ...

  7. clicknium-划时代的自动化

    说起UI自动化,selenium一直是不可替代的存在,它的安装量.百度数量已经奠定了它在自动化.爬虫等相关领域的霸主低位,可以说,只要涉及到UI自动化,选selenium就对了. 细数过往,相关的UI ...

  8. 两台linux服务器互相自动备份

    转载:csdn https://blog.csdn.net/gjwgjw1111/article/details/103515031

  9. MySQL视图、存储过程、函数、触发器、定时任务、流程控制总结

    视图的增删改查 视图相当于一张只能读的表,不可以修改.当组成视图的表发生数据变化的时候,视图会相对应的进行改变. 存储过程的练习 创建存储过程: create [if not exists] proc ...

  10. WHAT IS PPM Encoder ?

    About PPM Encoder The PPM encoder allows to encode up to 8 PWM (pulse width modulated) signals into ...