@Konf
Редактирую ответы на 2 + 2 по 4 раза

Как не создавать дубликаты объектов в БД?

Концепт: код NodeJS, который по запросу пользователей будет отправлять в MongoDB объекты, внутри которых будет разная всячина.

Пример

const objTypeA = {
  a: Boolean,
  b: Boolean,
  c: String,
  d: Number
}

const objTypeB = {
  a: Boolean,
  b: String,
  c: Number,
  d: {
    x: Boolean,
    z: String
  }
}


В какой-то момент, пользователь может составить запрос на создание объекта, копия которого уже есть в БД.
Как избежать сохранения в БД объектов с одинаковым содержимым?

Первое что мне пришло в голову - делать хеш из таких объектов через npm/object-hash, и при добавлении новых объектов, сравнивать их хеши, и я бы так и сделал, если бы не боялся коллизий. Когда вообще стоит их бояться? Может просто сначала делать поиск по хешу, а потом ещё раз перепроверять точно ли совпадает содержимое этих двух объектов?

Затем я нашёл что в MongoDB можно создавать какие-то индексы для свойств объектов, которые можно обозначить как unique: true, и это вроде как именно то что мне нужно, но я не уверен будет ли это работать с вложенными объектами: https://docs.mongodb.com/manual/core/index-unique/
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы