Для моего проекта, я хочу, чтобы сохранить мангуста документ для групп организаций, например: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 без дополнительных запросов или разделения схемы?
Edit: Я изменил предыдущее значение UID для UID: {типа: Schema.Types.ObjectId, ссылка: 'User', индекс: {уникальный: true dropDups: истинный}} Но это еще Безразлично Кажется, он работает.
Редактировать: Предполагая, что для этого нет простого способа, я добавил дополнительный запрос, если пользователь уже находится в группе. Это кажется мне самым простым способом.
проверить это будет [полезно] (http://stackoverflow.com/questions/12395118/mongodb-setting-unique-field) – karthick
Благодарим вас за ссылку. Я пробовал следующее: uid: {type: Schema.Types.ObjectId, ref: 'User', index: {unique: true, dropDups: true}} вместо старого значения для uid. Это все еще не работает, я также попытался перезапустить mongoDB без успеха. –