我有这样的方案:
const schema = new Schema({
deviceName: { type: String, required: true, unique: true},
category: { type: String, enum: DEVICE_CATEGORIES, required: true },
incompatibleWithDevices: [String]
});
const DeviceModel = model(
"Device",
schema
);
incompatibleDevices
应该是相关设备无法使用的其他设备的列表(按设备名称)。因此,该数组应该只接受数据库中实际存在的设备名称。出于业务逻辑的目的,我在这里不能有一对多关系。
我曾想过以某种方式将当前存在的所有设备名称都枚举起来,但由于这会随着设备的添加/删除而不断变化,所以我想不出一个方法来做到这一点。
有谁知道如何做到这一点吗?也许是带有定制验证器的东西?
提前感谢,如有任何帮助,不胜感激!
1条答案
按热度按时间56lgkhnf1#
在创建新的
Device
文档之前,您可以直接在后端逻辑中添加验证,以检查您要发送的设备是否存在于数据库中。您可以使用
$in
运算符: