mon goose внутреннее объединение схемы не дает результата в моем случае - PullRequest
0 голосов
/ 16 января 2020

Я слежу за многими примерами mon goose для внутреннего соединения со схемой, но не получаю ответа от других моих таблиц. Мой вопрос заключается в том, чего не хватает в моем коде, пожалуйста, помогите мне в этом.

Я хочу получить результаты класса и предметов также.

  exports.classSubjectList = async (req, res, next) => {
  const obj = await ClassSubject.find().populate('classmodel').exec();
  res.status(200).json({
        success: true,
        response: obj
      });
};

// ClassSubjectModel

const mongoose = require('mongoose');
mongoose.Promise = global.Promise 
const Schema = mongoose.Schema
const classModel  = require('../class/classModel');
const subjectModel  = require('../subject/subjectModel');

var classsubject = new Schema({    
    ClassId: String,
    SubjectId : String,
    IsShow: { type: Boolean, default : true},   
    classmodel: { type: mongoose.Schema.Types.ObjectId, ref: classModel },
    subjectmodel: { type: mongoose.Schema.Types.ObjectId, ref: subjectModel },

});

// Модель класса

const mongoose = require('mongoose');
mongoose.Promise = global.Promise 
const Schema = mongoose.Schema

var classinfo = new Schema({    
    ClassName: String,
    IsShow: { type: Boolean, default : true},   

});


module.exports = mongoose.model('classinfo', classinfo);

// Модель SUBJECT

const mongoose = require('mongoose');
mongoose.Promise = global.Promise 
const Schema = mongoose.Schema

var subject = new Schema({    
    SubjectName: String,
    IsShow: Boolean,   

});


module.exports = mongoose.model('subject', subject);

результат

[
        {
            "IsShow": true,
            "_id": "5e1efc0f354849246c472cfe",
            "SubjectId": "5e1da60bf52acb30b87e92c4",
            "ClassId": "5e1ec13ed777bf28d01e2481",          
            "__v": 0
        }]

1 Ответ

1 голос
/ 17 января 2020

Вы должны использовать имя модели вместо использования имени файла / объекта в заполнении, как показано ниже.

exports.classSubjectList = async (req, res, next) => {
  const obj = await ClassSubject.find().populate('classinfo').exec();
  res.status(200).json({
        success: true,
        response: obj
      });
};

// ClassSubjectModel

const mongoose = require('mongoose');
mongoose.Promise = global.Promise 
const Schema = mongoose.Schema
const classModel  = require('../class/classModel');
const subjectModel  = require('../subject/subjectModel');

var classsubject = new Schema({    
    ClassId: String,
    SubjectId : String,
    IsShow: { type: Boolean, default : true},   
    classmodel: { type: mongoose.Schema.Types.ObjectId, ref: classinfo },
    subjectmodel: { type: mongoose.Schema.Types.ObjectId, ref: subjectModel },

});
...