我有以下 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
数组,但这没有任何意义。
关于javascript - 简单的 Mongoose 填充似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28566545/