Для моего проекта, я хочу сохранить документ mongoose для групп организаций, например:
var groupSchema = Schema({
name : { type : String },
org : { type : Schema.Types.ObjectId, ref : 'Organization' },
...
users : [{
uid : { type : Schema.Types.ObjectId, ref : 'User' },
...
}]
});
Я хочу, чтобы один и тот же пользователь не был в одной группе дважды. Для этого мне нужно заставить users.uid быть уникальным в массиве users. Я попытался указать "unique: true" для uid, но это не сработало. Есть ли способ сделать это с помощью mongoose или mongoDB без дополнительных запросов или расщепления схемы?
Изменить: Я изменил предыдущее значение uid на uid: {type: Schema.Types.ObjectId, ref: 'Пользователь', index: {unique: true, dropDups: true}} Но это все еще не работает.
Изменить: если нет простого способа добиться этого, я добавил дополнительный запрос, если пользователь уже находится в группе. Это кажется мне самым простым способом.