Ответы пользователя по тегу MongoDB
  • Если перенести таблицу с одной бд в другую, сохранив старые _id. Могут ли быть какие-то проблемы в плане производительности в новой бд?

    Hecc
    @Hecc
    Frontend. Дизайн. Шрифт.
    Ответ на этот вопрос кроется в понимании того, чем является ObjectId в MongoDB.

    ObjectID - это 12 байтов информации, которые состоят из:
    - 4 байта. Timestamp даты создания
    - 5 байтов. Рандомное число
    - 3 байта. Инкрементируемый счетчик

    Никакой информации, которая хранит какие-то специфичные данные об коллекции или самом объекте там нету.
    Можете попробовать воспользоваться сервисом чтобы получить timestamp из любого _Id.

    В целом, перенос объекта с одной коллекции в другую не должен как-то повлиять на производительность
    Ответ написан
    Комментировать
  • Как организовать структуру базы данных MongoDB?

    Hecc
    @Hecc
    Frontend. Дизайн. Шрифт.
    Тут на самом деле все зависит от функционала, который вы хотите реализовать.

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

    Т.е структура выглядела бы как-то так:
    User {
        _id: ObjectId('...'),
        notes: [
            ObjectId('Note1...'),
            ObjectId('Note2...'),
            ObjectId('Note3...')
        ]
    }
    
    
    Note {
         _id: ObjectId('Note1...'),
         ...,
        labels: [
            ObjectId('Label 1'), 
            ObjectId('Label 2'),
        ]
    }
    
    
    Label {
        _id: ObjectId('Label 1'),
        name: "Label 1"
    }


    Опять же формально, лейблы можно хранить и прямо в записях, но тогда такая задачка, как фильтрация по какому-то из лейблов становится неоправданно сложнее + сложнее будет держать консистентность данных.
    Ответ написан
    4 комментария
  • Ошибка при отправке json на сервер. Как исправить?

    Hecc
    @Hecc
    Frontend. Дизайн. Шрифт.
    А зачем на 23 строке res.send?
    Вы же дальше отправляете ответ через res.json();
    Судя по всему, res.json задает заголовки для ответа, что там хранится именно json. А так как ответ уже отправлен, с этим возникает проблема.

    А вообще в ошибке написано, что у вас где-то реджектится промис без catch блока, я подозреваю, что эта 23 строка это и есть проблемное место.
    Ответ написан