У меня есть Пользователь (документ), в котором я поддерживаю коллекцию друзей (встроенный документ). Я пытался убедиться, что для данного пользователя все его друзья уникальны (адрес электронной почты должен быть уникальным). Однако это ограничение не применяется, и я не могу понять, почему. Кто-нибудь мог бы помочь мне в этом?Как обеспечить уникальность в коллекции встроенного документа
Я использую Mongo 2.2 и Mongoose.
var FriendSchema = new mongoose.Schema({
email : { type: String, required: true, lowercase: true, trim: true }
, name : { type: String, trim: true }
});
var UserSchema = new mongoose.Schema({
email : { type: String, required: true, index: { unique: true }, lowercase: true, trim: true }
, friends : [FriendSchema]
});
UserSchema.index({ 'friend.email': 1 }, { unique: true });
Я столкнулся с этой проблемой. Можно ли позволить Node.js справиться с этим? Не удалось ли выполнить обход во время асинхронного вызова? – wtjones
Да, но нет другого варианта. Вы можете сделать что-то вроде двухэтапного сохранения, чтобы попытаться уменьшить вероятность. Но в конце дня, если БД не будут применять его, вы столкнетесь с этой проблемой. –