【问题标题】:Best way to add computed sub document to array on Document creation in Mongoose?在 Mongoose 中创建文档时将计算的子文档添加到数组的最佳方法?
【发布时间】:2021-09-05 16:09:55
【问题描述】:

考虑:

const memberInfo = new Schema({
  idMember: { type: Schema.Types.ObjectId, ref: 'member', requied: true },
  memberType: {
    type: String,
    default: 'normal',
    enum: ['normal', 'admin', 'owner'],
  },
});

const boardSchema = new Schema({
  name: { type: String, required: true },
  idMemberCreator: {
    type: Schema.Types.ObjectId,
    ref: 'member',
    required: true,
  },
  members: [memberInfo],
});

当我使用“name”和“idMemberCreator”字段创建一个新板时,我希望模型自动将“memberInfo”子文档添加到“idMember”字段设置为“idMemberCreator”的“members”数组中" 并且 "memberType" 被设置为 "owner"。

有没有办法做到这一点?如果可能,我想在架构中处理这个问题,而不必将该字段保存在控制器/解析器函数中。

【问题讨论】:

    标签: mongodb mongoose mongoose-schema


    【解决方案1】:

    使用猫鼬钩

    boardSchema.post('save', function() {
      this.update({},{ $push: { members: {idMember:"$idMemberCreator",memberType:"owner"} } });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 2018-01-26
      • 2014-07-29
      • 2019-01-04
      相关资源
      最近更新 更多