简单的猫鼬种群不会;似乎不起作用

Simple mongoose populate doesn't seem to be working

本文关键字:不起作用 种群 简单      更新时间:2023-12-10

我有以下2个模式的

问题.js

var mongoose = require('mongoose');
    var Schema = mongoose.Schema;
    var questionsSchema = new Schema({
        nr: Number,
        points: Number,
        description: String,
        isActive: {type: Boolean, required: true, default: true}
    });
    module.exports = mongoose.model('Question', questionsSchema);

圆形.js

 var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var roundSchema = new Schema({
    name: String,
    index: Number,
    questions: {type: [Schema.Types.ObjectId], ref: 'Question'},
    createdOn: {type: Date, required: true, default: Date.now()},
    isActive: {type: Boolean, required: true, default: true}
});
module.exports = mongoose.model('Round', roundSchema);

有一些数据被正确填充,然而,当我尝试最简单的查询时,它甚至都不起作用:

var Round = require('../model/round.server.model.js');
function findAll(req, res) {
        Round.find().populate('questions').exec(function (err, results) {
            if (err) {
                console.log("An error occured when receiving all rounds!", err);
                return res.sendStatus(404);
            }
            console.log(results);
            return res.send(results);
        });
    }

检索所有回合,但问题数组为空,甚至_id本身也消失了

我认为这是因为您以错误的方式初始化您的种群。我知道你每轮都想要一系列的问题。你的错误似乎就在这里。

 questions: {type: [Schema.Types.ObjectId], ref: 'Question'}

为了使其工作,您应该执行以下操作:

 questions: [{type: Schema.Types.ObjectId, ref: 'Question'}]

因为实际上,你正在制作一个type的数组,这并不意味着什么。