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就可以了,非常方便.近日遇到一种情况,两个表中的数据已经取到代码中,需要在代码中将这两个表关联起来,并得到它们横 ...
随机推荐
- 一文详解数仓GaussDB(DWS) 函数出参带出方式
摘要:本文主要讲解DWS函数出参带出方式. 本文分享自华为云社区<GaussDB(DWS)功能 -- 函数出参 #[玩转PB级数仓GaussDB(DWS)]>,作者:譡里个檔 . DWS的 ...
- python3中,//、/ 的区别
//:地板除,返回整数结果 /:浮点数除法,返回浮点结果 例: print(3//2) #输出1 print(3/2) #输出1.5 拓展:判断水仙花数 # 题目:打印出所有的"水仙花数 ...
- 三:Mybatis
三.MyBatis 主流的ORM 支持java .NET Ruby三种语言,MyBatis是对JDBC的封装 ORM框架Hibernate 区别: 1)sql 优化方面 Hibernate 使用 HQ ...
- CodeArts Snap:辅助你编程的神器
摘要:通过将自然语言转化为规范可阅读.无开源漏洞的安全编程语言,提升开发者编程效率,助力企业快速响应市场需求. 本文分享自华为云社区<华为云发布智能编程助手 CodeArts Snap!> ...
- linux配置两个不同网段的ip and linux批量添加连续IP
转载csdn: centos 下批量添加连续IP_cdefg198的专栏-CSDN博客_centos批量添加ip 转载csdn: linux配置两个不同网段的ip_子曰小玖的博客-CSDN博客_lin ...
- vue data为什么是函数
vue data是函数的原因: 1.防止data复用: 2.data独立性: 3.作用域: 4.js的特性. 总结来说,如果data是一个函数的话,这样每复用一次组件,就会返回一份新的data(类似于 ...
- 前端随笔0:URL与状态的双向绑定
记录一些最近写前端的思考总结,也算是给自己的技术随笔开个篇 在接触以 React,Vue 为代表的工程化前端框架前,我还是一个拿着 jQuery 手撸特效和手写 CSS 的切图仔,捣鼓 Vue 时接触 ...
- 全国计算机二级python备考
选择题: https://www.itkaoshi.net/3476.html 操作题: https://www.bilibili.com/video/BV1Zj411f7ey?p=1 经典题讲解: ...
- linus->查看文件及文件夹大小相关命令
背景: 经常会遇到服务器服务突然停了,去服务器一看服务正常运行. 然后在排查服务器容量,发现100%使用. 那么记下来一些常用命令是有必要的. 相关命令: df -hl 查看占用情况. du -s ...
- GoLang中signal.Notify函数用法
官方描述: Notify函数让signal包将输入信号转发到c.如果没有列出要传递的信号,会将所有输入信号传递到c:否则只传递列出的输入信号. signal包不会为了向c发送信息而阻塞(就是说如果发送 ...