如何为来自 mongodb 的接口实现 "equals"?
How to implement "equals" for interface from mongodb?
export interface IHealthPlanCard {
_id: string,
statusId: string;
}
const cards: IHealthPlanCard[] = await healthPlanCardsCollection.find(...)
cards.filter(card => card.statusId.equals(cardStatusId))
在那种情况下,它向我显示错误:属性 'equals' 在类型 'string'.ts 上不存在(2339)
我不能写这样的东西:
export interface IHealthPlanCard {
_id: string,
statusId: string | eqauls;
}
如果您正在使用 MongoDB(或 mongoose)并处理 ObjectId,您应该始终使用 ObjectId
类型而不是 string
:
import { ObjectId } from "mongodb"
// import { Types } from "mongoose"
export interface IHealthPlanCard {
_id: string,
statusId: ObjectId;
}
const cards: IHealthPlanCard[] = await healthPlanCardsCollection.find(...)
cards.filter(card => card.statusId.equals(cardStatusId))
如果您将架构定义为使用 ObjectId
而不是 string
,这将 仅 起作用。
现在您的 ObjectId 将具有 .equals()
方法。
export interface IHealthPlanCard {
_id: string,
statusId: string;
}
const cards: IHealthPlanCard[] = await healthPlanCardsCollection.find(...)
cards.filter(card => card.statusId.equals(cardStatusId))
在那种情况下,它向我显示错误:属性 'equals' 在类型 'string'.ts 上不存在(2339)
我不能写这样的东西:
export interface IHealthPlanCard {
_id: string,
statusId: string | eqauls;
}
如果您正在使用 MongoDB(或 mongoose)并处理 ObjectId,您应该始终使用 ObjectId
类型而不是 string
:
import { ObjectId } from "mongodb"
// import { Types } from "mongoose"
export interface IHealthPlanCard {
_id: string,
statusId: ObjectId;
}
const cards: IHealthPlanCard[] = await healthPlanCardsCollection.find(...)
cards.filter(card => card.statusId.equals(cardStatusId))
如果您将架构定义为使用 ObjectId
而不是 string
,这将 仅 起作用。
现在您的 ObjectId 将具有 .equals()
方法。