所以在我的付款模式中。我有一个价格字段,可以接受付款对象(货币,金额)或“ FREE”字符串。如何在模型中定义它。
即
price: { currency: "USD", amount: "100.00"}
或
price: "FREE"
因此,如何在模型中定义它,因为这不起作用:
...
price: { currency: String, amount: String } || String
...
答案 0 :(得分:1)
您可以使用mixed模式类型
new Schema({
ofMixed: [Schema.Types.Mixed],
})
但是您必须将其标记为文档中提到的
由于它是无模式类型,因此您可以将值更改为任何值 其他你喜欢的东西,但是猫鼬失去了自动检测和保存的能力 这些变化。告诉猫鼬混合类型的值具有 更改后,您需要调用doc.markModified(path),并将路径传递给 您刚刚更改的混合类型。
相反,您可以使用schema.path()并研究此mongoose issue以获得更好的解决方案,以避免在此处输入mixed
。