无法让带有鉴别器的猫鼬工作

时间:2021-06-05 15:31:10

标签: typescript mongodb express mongoose

我的问题是,我定义了一个基本/父架构和 3 个子架构,但我只得到

<块引用>

没有与此调用匹配的过载

这是我的架构

import { model, Schema } from 'mongoose';

export interface IBaseCriteria {}

const baseOptions = {
  discrimatorKey: 'itemType',
  collection: 'criterias',
};
const baseCriteriaSchema = new Schema<IBaseCriteria>({
  baseOptions,
});

export default model<IBaseCriteria>('BaseCriteria', baseCriteriaSchema);
import { model, Schema } from "mongoose";
import BaseCriteria from "./baseCriteria.model";

export interface IDateCriteria {
after: Date;
before: Date;
}

const dateCriteria = BaseCriteria.discriminator(
"date",
new Schema({
 after: { type: Date },
 before: { type: Date },
})
);

export default model("DateCriteria", dateCriteria);

我做错了什么?

1 个答案:

答案 0 :(得分:0)

.discriminator 返回一个模型。所以你不需要创建模型。

您的 dateCriteria 已经是模特了。


只需导出使用:

export default dateCriteria

查看鉴别器文档:https://mongoosejs.com/docs/discriminators.html

<块引用>

它返回一个模型,其架构是基本架构和鉴别器架构的并集。