如何从Mongoose推送到Object中的Array?

时间:2018-01-11 00:08:33

标签: mongodb mongoose

这是我的模型中的架构。

const applicantEvaluationSchema = new mongoose.Schema(
  {
    applicantIdx: Number,
    application: {
      comments: [
        {
          userIdx: Number,
          comment: String,
          createdAt: Date,
        },
      ],
      evaluations: [
        {
          userIdx: Number,
          point: Number,
        },
      ],
    },
    interview: {
      comments: [
        {
          userIdx: Number,
          comment: String,
          createdAt: Date,
        },
      ],
      evaluations: [
        {
          userIdx: Number,
          point: Number,
        },
      ],
    },
  }
);

我想在application.comments中发表评论

我认为克隆数组,推送我的评论并更新

但我认为推动对象的方法更好。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

您可以将Model.update$push运算符一起使用:

//Your model
ApplicantEvaluation.update(
  { /* selection criteria */ }, 
  {
    $push: {
      'application.comments': /* new comment object */
    }
  }
);

使用$push运算符,您可以提供要推送到的字段和新对象。如果您有嵌套字段,请使用点语法访问该字段。由于comments数组嵌套在application内,请使用'application.comments'