猫鼬识别符为子模式创建单个集合

时间:2020-05-17 15:59:55

标签: node.js mongodb mongoose mongodb-query nosql

我制作了三个架构,如下例所示。

父用户模型

  const UserSchema = new mongoose.Schema(
  {
    email: {
      type: String,
      required: true,
      unique: true,
    },
    password: {
      type: String,
      require: true,
    },
  },
  {
    timestamps: true,
    discriminatorKey: "userType",
    id: false,
  }
);
module.exports = mongoose.model("user", UserSchema);

另两个是从UserModel继承的

const TeacherSchema = new mongoose.Schema(
  {
    example: {
      type: String,
    },
  }
);

module.exports = UserModel.discriminator("teacher", UserSchema);

const StudentSchema = new mongoose.Schema(
  {
    example: {
      type: String,
    },
  }
);

module.exports = UserModel.discriminator("student", UserSchema);

当我将数据保存给学生或老师时

它只是将所有内容添加到用户文档

。虽然我可以用

将它们分开
discriminatorKey: "userType",

我试图将公用数据保留在用户表中,而其他保留在基于角色的单独文档中。 我无法理解Official Docs,因为它似乎应该按照我的想法工作。 我也怀疑这件事如何在我的唯一索引上起作用。 任何帮助,将不胜感激。

0 个答案:

没有答案