猫鼬数组为空,即使填充

时间:2020-05-11 22:00:04

标签: javascript mongodb express mongoose model

我有这两个模型,我想填充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,
  });
};

0 个答案:

没有答案