Нужен способ сделать свойства внутри массива объектов уникальными в схеме Мангуста - PullRequest
0 голосов
/ 24 октября 2019

Я довольно новичок в мангусте, извините, если мой вопрос глупый.

У меня есть схема ниже:

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. Каждое меню в разделе должно иметь уникальное имя.

Я сделал имя раздела и имя меню уникальным, но я могу создавать разделы и меню с одинаковыми именами. Я знаю, что мое определение схемы может быть неправильным, а сам подход может быть неправильным.

Каковы способы достижения этого?

...