【问题标题】:Can't get Mongoose with discriminator to work无法让带有鉴别器的 Mongoose 工作
【发布时间】:2021-08-23 07:55:14
【问题描述】:

我的问题是,我定义了一个基本/父架构和 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);

我做错了什么?

【问题讨论】:

    标签: typescript mongodb express mongoose


    【解决方案1】:

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

    你的dateCriteria已经是模特了。


    只需使用以下方式导出:

    export default dateCriteria
    

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

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

    【讨论】:

    • 嗨,非常感谢,我还需要在界面中输入鉴别器和/或新的模式方法吗?
    • 是的。使用const dateCriteria = BaseCriteria.discriminator&lt;IDateCriteria&gt;(.......)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 2017-02-12
    • 2021-10-08
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2017-08-16
    相关资源
    最近更新 更多