zoukankan      html  css  js  c++  java
  • 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
                    }
                }
            })
  • 相关阅读:
    【内存管理】STL空间配置器
    【关键帧提取】基于CSD特征
    【内存管理】内存池技术
    【CUDA学习】计时方法
    【内存管理】简单的分配程序(续1)
    【背景建模】基于时空特征(续1)
    【OpenCV学习】准确定位帧
    【背景建模】基于时空特征(续2)
    【内存管理】简单的分配程序
    32位asp.net应用程序在64位Windows上运行时的问题一例
  • 原文地址:https://www.cnblogs.com/qiyc/p/15667289.html
Copyright © 2011-2022 走看看