【问题标题】:mongoose schema inner join not getting result in my case猫鼬模式内部连接在我的情况下没有得到结果
【发布时间】:2020-05-03 04:52:04
【问题描述】:

我正在关注许多 mongoose 的示例,用于与模式进行内部连接,但我的其他表没有得到响应。 我的问题是我的代码中缺少什么,请帮帮我。

我也想得到班级和科目的结果。

  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);

//主题模型

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
        }]

【问题讨论】:

    标签: node.js mongoose mongoose-schema mongoose-populate


    【解决方案1】:

    您必须使用模型名称而不是使用文件/对象名称来填充,如下所示。

    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 },
    
    });
    

    【讨论】:

      猜你喜欢
      • 2016-07-22
      • 1970-01-01
      • 2022-11-22
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 2016-04-13
      • 1970-01-01
      相关资源
      最近更新 更多