Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Mongoose unique (https://javascript.ru/forum/node-js-io-js/85290-mongoose-unique.html)

od0201 09.06.2023 20:39

Mongoose unique
 
Не срабатывает не "unique: true", не "index: { unique: true }"
Вставлет дубликат, не выдает не ошибок, не предупреждени.
const propertySchema = new Schema({
  propkey: {
    type: String,
    index: { unique: true }
  },
})

const addProperty = (req, res) => {
  const property = new Property(req.body);
  property
  .save()
  .then((result) => {
    res
      .status(201)
      .json(result);
  })
  .catch((err) => handleError(res, err));
};

od0201 09.06.2023 21:11

.connect(URL,{autoIndex:true})

сделел так, заработало, почитал что это значение по умолчанию, удалил, тоже работает. Получается ничего не менял и работает. Странно.

Пишут что если были дубли до этого, то не будет работать, БД была пустая (не не удалялась), может что-то закэшировалось...

od0201 09.06.2023 22:46

Код не менял
Опять начала игнорировать "уникальность".
Что происходит?

od0201 10.06.2023 09:06

добавил в mongoDB
Код:

db.properties.createIndex({ propkey: 1 },{unique: true})
полет нормальный

кто знает, напишите, пожалуйста, как правильно

Aetae 10.06.2023 14:22

od0201, сам не юзал, но чатгпт говорит что для изменения после создания твой последний вариант верный, только хорошо бы использовать при этом callback чтоб словить ошибку если не получилось.

А для изначального создания говорит, что надо писать просто:
const propertySchema = new Schema({
  propkey: {
    type: String,
    unique: true
  },
})

Ну и не забывать делать .drop() чтоб применилось.


Часовой пояс GMT +3, время: 02:46.