как соединить две схемы в nestjs? - PullRequest
1 голос
/ 09 октября 2019

У меня есть две схемы, такие как

feature.schema.ts

`import * as mongoose from 'mongoose';
import { settings } from '../_settings';
  export const FeatureSchema = new mongoose.Schema({
     feature_name :{
            type : String
        },
        module_id :{
            type : mongoose.Schema.Types.ObjectId,
            ref : 'Modules'
        },
        status :{
            type : String,
            default: false
        }
}, {...settings.options, collection: 'Features'}
);`

и menus.schema.ts

import * as mongoose from 'mongoose';
import { settings } from '../_settings';

export const MenusSchema = new mongoose.Schema({
    name :{
        type : String
    },
    feature_id: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Features',
    },
    status :{
        type : String
    }
}, {...settings.options, collection: 'Menus'}
);

я пытаюсь присоединиться к меню с функцией, попробуйте присоединиться к menus.service.ts вот так

import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { IDMenus, IDFeature } from '@core/interfaces';
import { MenusDto, FeatureDto } from '@core/dto';
var ObjectId = require('mongoose').Types.ObjectId;

@Injectable()
export class MenusService {
    constructor(@InjectModel('Menus') private dataModel :Model<IDMenus>,
                @InjectModel('Features') private ftModel :Model<IDFeature> ) {} 

  async findjoin(): Promise<IDMenus[]> {
    return this.dataModel.find().populate('Features.feature_id')
    .exec();
  }

}

его результат не показывает ошибок, но не получаетсяприсоединиться результат почему? результат

{
        "_id": "5d6f606bbd12ad52b7ec618f",
        "name": "Inventry",
        "feature_id": "5d6f5d22bd12ad52b7ec618e",
        "status": "TRUE",
        "createdAt": "2019-09-04T06:57:47.212Z",
        "updatedAt": "2019-09-04T06:57:47.212Z",
        "id": "5d6f606bbd12ad52b7ec618f"
    }

как получить результат объединения, это правильный способ объединения?

1 Ответ

0 голосов
/ 09 октября 2019

Возврат ожидают внутри асинхронной функции следующим образом: return await this.dataModel.find().populate('feature_id').exec()

...