Задать вопрос
  • Как установить лимит в работе с массивами в БД(mongoose)?

    Grapeoff
    @Grapeoff
    В чём концепция...?
    Начну немного не с сути вопроса, но вам это также пригодится.
    1. Модель называем не Clients, а Client. Множественные числа используем когда говорим о массиве. Вы создаете модель одного клиента, а не нескольких.
    2. isBlocked - бесполезное поле. А ругается оно, потому что ждёт класс Boolean, а вы тип передаёте.
    3. Скорее всего, у вашего клиента не может быть две одинаковых книги, поэтому используем не $push, а $addToSet.

    А теперь к вашему вопросу.

    Просто отталкивайтесь от размера массива.

    Вначале получаете клиента по id и если не найден то выбрасываете ему 404.
    Далее делаете проверку на length его книг, и если оно меньше 3-х (советую вынести в константу), то делаете $addToSet, иначе выбрасываете Bad Request или что-то подобное.

    Крайне советую делать добавление книги отдельным запросом, а не arr.push на документе и последующим save.
    Ответ написан
    1 комментарий