使用接口作为mongoose模式中的字段类型

zysjyyx4  于 2023-08-06  发布在  Go
关注(0)|答案(2)|浏览(72)

我用的是打字机和 Mongoose 。我有这个接口:

interface Job {
  jobid: Boolean;
  title: Boolean; 
}

字符串
我想创建一个模式,其中一个字段是一个Jobs数组:

const workerSchema = new Schema({
  _id: { type: String required: true }
  first_name: { type: String }
  jobs: [Job]
})


但我得到错误'Job'只引用了一个类型,但在这里被用作值。我该如何解决此问题?

mzaanser

mzaanser1#

Mongoose official documentation
Mongoose支持SchemaTypes数组和子文档数组。SchemaType的数组也称为基元数组,子文档的数组也称为文档数组
如果你想让workerSchema定义一个jobs属性来实现你的Job接口,你应该做以下事情:

interface Job {
    jobid: Boolean;
    title: Boolean;
  }

const JobSchema = new Schema<Job>({
  jobid: {
    type: Boolean,
    required: true
  },
  title: {
    type: String,
    required: true
  }
});

const workerSchema = new Schema({
  _id: { type: String, required: true },
  first_name: { type: String },
  jobs: [JobSchema]
});

字符串

ntjbwcob

ntjbwcob2#

const workerSchema = new Schema({
  _id: { type: String required: true }
  first_name: { type: String }
  jobs: {type:[Job]}
})

字符串
如果没有工作者使用类而不是接口

相关问题