需要一种使猫鼬模式中的对象数组内的属性唯一的方法

时间:2019-10-24 04:13:06

标签: mongoose mongoose-schema

我是猫鼬的新手,很抱歉,如果我的问题很愚蠢。

我有以下架构:

const mongoose = require('mongoose')

const restaurantSchema = mongoose.Schema({
    owner_id: {
        type: mongoose.Schema.Types.ObjectId,
        required: true
    },
    name: {
        type: String,
        required: true,
        unique: true
    },
    phone: {
        type: String,
        required: true
    },
    street: {
        type: String,
        required: true
    },
    city: {
        type: String,
        required: true
    },
    state: {
        type: String,
        required: true
    },
    zip: {
        type: String,
        required: true
    },    
    image: String,
    cuisine: {
        type: String,
        required: true
    },
    sections: [
        {
            id: mongoose.Schema.Types.ObjectId,
            name: {
                type: String,
                unique: true
            },
            menus : [
                {
                    id: mongoose.Schema.Types.ObjectId,
                    name: {
                        type: String,
                        required: true,
                        unique: true
                    },
                    description: String,
                    price: {
                        type: Number,
                        required: true
                    },
                    image: String
                }
            ]
        }
    ]
});

餐厅可能有很多部分,而这些部分又可能有很多菜单。要求如下:

  1. 餐厅中的每个部分都必须具有唯一的名称。
  2. 节中的每个菜单必须具有唯一的名称。

我使节名和菜单名唯一,但我仍然可以用相同的名字创建节和菜单。我知道我的架构定义可能是错误的,并且方法本身可能是错误的。

有哪些方法可以实现?

0 个答案:

没有答案