yarkov
@yarkov
Помог ответ? Отметь решением.

Как правильно задать условие в Mongoose?

Есть модель Категории:
const CategorySchema = new mongoose.Schema( {
    /**
     * Название категории
     */
    title: {
        type: String,
        required: true,
        unique: true,
        validate: {
            validator: v => v.length,
            message: 'Название категории не должно быть пустым!',
        }
    },
    /**
     * Флаг, означающий то, что категория стандартная
     */
    root: {
        type: Boolean,
        required: true,
        default: true
    },
    /**
     * Дата и время создания
     */
    createdate: {
        type: Date,
        default: Date.now,
    },
    /**
     * Дата и время последнего изменения
     */
    lastupdate: {
        type: Date,
        default: Date.now,
    },
    /**
     * ID автора
     */
    userID: {
        type: mongoose.Schema.ObjectId,
        ref: 'User'
    },
    /**
     * Описание полей и заголовков для построения формы
     */
    metaInfo: {
        type: mongoose.Schema.Types.Mixed,
        required: true
    }
} );

Как видно из схемы поле title уникальное. НО! Теперь понадобилось дать юзерам создавать свои категории. Из этого вопрос:
Как сделать так, чтобы если root==false или userID не пустой, то title позволял бы совпадения?

Не знаю как сказать ))) Надеюсь понятно объяснил.

Стандартные категории создаются при развертывании приложения с помощью скрипта 1 раз.
  • Вопрос задан
  • 342 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Nick8
Можно делать findOne с проекцией { root: 1 } и дальше уже в зависимости от существования и значения root изменять/не изменять тайтл. Надеюсь, правильно понял вопрос.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы