我有这两个模型,我想填充historicalo数组,但是即使我使用了填充数组的方法也仍然为空。我认为发生这种情况的原因是因为我没有指定join参数。我该怎么做?在查找方法中还是在填充中?
var userSchema = new Schema({
cartaoCidadao: {
type: String,
required: true,
index: true,
unique: true,
match: /[0-9]{8}/,
},
password: { type: String, required: ["password is a required field"] },
historico: [
{
type: Schema.Types.ObjectId,
ref: "Request",
},
],
role: { type: String },
estado: { type: String, enum: ["Infetado", "Suspeito", "Curado"] },
});
var requestSchema = new Schema({
paciente: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
encaminhado: {
type: String,
required: [true, "encaminhado is a required field"],
enum: ["Sim", "Não"],
}, //vem do body
pessoaRisco: {
type: String,
required: [true, "pessoaRisco is a required field"],
enum: ["Sim", "Não"],
}, //vem do body
trabalhoRisco: {
type: String,
required: [true, "trabalhoRisco is a required field"],
enum: ["Sim", "Não"],
}, //vem do body
estadoPedido: {
type: String,
enum: ["Pendente", "Agendado", "Concluído", "Aguarda Resultado"],
},
resultado: { type: String, enum: ["Positivo", "Negativo"] },
dataExame: { type: Date }, //data tem de ser superior a data atual
});
userController.getUserById = function (req, res, next, id) {
User.findOne({ _id: id })
.populate("historico")
.exec(function (err, user) {
if (err) {
next(err);
} else {
res.json(user);
}
});
};
userController.getOneUser = function (req, res) {
res.json({
cartaoCidadao: req.user.cartaoCidadao,
historico: req.user.historico,
estado: req.user.estado,
});
};