nestjs mongoose关联查询
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关联查询的更多相关文章
- mongoose的关联查询 :populate
mongoose关联查询从3.2版本开始支持 基本用法如下: var studentSchema = new Schema({ name:String, age:String, school:{ ty ...
- Mongoose中关联查询populate的使用
MongoDB中没有join的特性,因此无法使用join进行表的连接和关联查询,在Mongoose中封装了populate方法,在定义一个 Schema 的时候可以指定了其中的字段(属性)是另一个Sc ...
- Mongoose如何实现统计查询、关联查询
[问题]Mongoose如何实现统计查询.关联查询 发布于 4 年前 作者 a272121742 13025 次浏览 最近业务上提出一个需求,要求能做统计,我们设计的文档集,统计可能跨越的文档会 ...
- Mongoose 多表(N个表)关联查询aggregate
Mongoose 多表(N个表)关联查询概述 需求:文章(article),文章分类(articlecate),用户(user)这三个表之间的关系,一篇文章对应文章分类表中的某个类型,对应着用户表中的 ...
- Mongoose 两个表关联查询aggregate 以及 Mongoose中获取ObjectId
Mongoose 两个表关联查询aggregate 通常两个表关联查询的时候,是一种一对多的关系,比如订单与订单详情就是一对多的关系,一个订单下面有多个商品 数据模拟 首先我们先将数据模拟出来,先选择 ...
- GraphQL介绍&使用nestjs构建GraphQL查询服务
GraphQL介绍&使用nestjs构建GraphQL查询服务(文章底部附demo地址) GraphQL一种用为你 API 而生的查询语言.出自于Facebook,GraphQL非常易懂,直接 ...
- MongoDB学习day10--Mongoose的populate实现关联查询
一.Mongoose populate官方文档 https://mongoosejs.com/docs/populate.html 二.Mongoose populate关联查询 1.定义ref va ...
- JDBC MySQL 多表关联查询查询
public static void main(String[] args) throws Exception{ Class.forName("com.mysql.jdbc.Driver&q ...
- MYSQL基础操作之数据约束与关联查询
一.MYSQL约束 1.默认值约束,当字段没有插入值的时候,mysql自动给该字段分配默认值. 默认值的字段允许为空. 对默认值字段也可以插入null. CREATE TABLE STUDENT( I ...
- C#代码中实现两个表(DataTable)的关联查询(JOIN)
之前通常都是使用SQL直接从数据库中取出表1和表2关联查询后的数据,只需要用一个JOIN就可以了,非常方便.近日遇到一种情况,两个表中的数据已经取到代码中,需要在代码中将这两个表关联起来,并得到它们横 ...
随机推荐
- C#Autofac依赖注入批量注入 (目前版本.netcore3.0)
上一文:C#依赖注入一看就会系列 链接:C#依赖注入(直白明了)讲解 一看就会系列 - 22222220 - 博客园 (cnblogs.com) 上一次我们知道了 为什么要依赖注入,这次我们就用使用人 ...
- flutter系列之:使用SliverList和SliverGird
目录 简介 SliverList和SliverGird详解 SliverList和SliverGird的使用 总结 简介 在上一篇文章我们讲解SliverAppBar的时候有提到过,Sliver的组件 ...
- P20_事件绑定
事件绑定 什么是事件 事件是渲染层到逻辑层的通讯方式.通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理. 小程序中常用的事件 事件对象的属性列表 当事件回调触发的时候,会收到一个事件对 ...
- vue+element 返回数组或json数据自定义某列显示的处理--两种方法
本文是作者开发一个业务需求时,将返回数据列表的其中一个数据长度很长的字段处理成数组,并将其作为子表显示的过程,具体样式如下(数据做了马赛克处理) 返回的过长字段数据处理(用分号分隔的一个长字段): t ...
- UBUNTU18.04安装使用ORB-SLAM2
1.下载: git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 2.依赖项: sudo apt install autotools ...
- 推荐一个分布式单点登录框架XXL-SSO!
有关单点登录(SSO)之前有写过两篇文章 一文读懂 JWT! 看完这篇不能再说不懂SSO原理了! 如果说XXL-JOB你可能并不陌生,它是非常火爆的一个分布式任务调度平台.但其实在该作者还有一个非常优 ...
- Vue框架整理:computed计算属性设置与缓存
简单的一些小计算可以直接用模板内的表达式计算,比较复杂一点的就建议使用"计算属性来运算了",也方便后期的维护:vue所有的计算属性都以函数的形式写在Vue实例内的computed里 ...
- LeetCode-440 字典序的第K小数字
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/k-th-smallest-in-lexicographical-order 题目描述 给定整数 ...
- 【PyQt5学习-03-】PyQt5 控件概念
快速开发:先看控件的功能,再根据需要选学 1.什么是控件 程序界面上的元素 各自独立 一块矩形区域 具有的功能 接收用户输入 用户点击 显示内容 放置其他控件 先学常用控件 基础控件 按钮 输入控件 ...
- CPU L1,L2,L3多级缓存的基本作用
基本作用 加快CPU与主内存之间的数据交换. 区别 缓存类型 L1 L2 L3 位置 最靠近CPU核心 次之 再次之 容量 一般几十KB~几百KB 几百KB~几MB 几MB~几十MB 速度 几个时钟周 ...