2017-02-08 3 views
0

Являются ли эти схемы действительными?Уникальный индекс на вложенных полях в схеме Mongoose

var StudentSchema = new mongoose.Schema({ 
    first_name: {type: String, required:true}, 
    last_name: {type: String, required: true}, 
    mother_name : {type: String, required: true}, 
    siblings:[{ 
    name:{type: String, required: true}, 
    age:{type:Number, required: true}, 
    school:{type:String, required:true} 
    }] 
}); 

И это

var WinSchema = new mongoose.Schema({ 
    event:{type: mongoose.Schema.Types.ObjectId, ref:'Event'}, 
    winners : [{ 
     student: {type: mongoose.Schema.Types.ObjectId, ref: 'Student'}, 
     position: {type:String, enum:["First","Second","Third","Consolation"]} 
    }] 
}); 

WinSchema.index({event:1,winners.student:1},{unique:true}); 

mongoose.model('Win',WinSchema); 

Можно ли гнездо, как показано на StudentSchema? Можем ли мы создать уникальный индекс для вложенных документов?

ответ

0

Да, вы можете его вложить, см. Пример схемы here и, конечно, вы можете создать индекс на вложенных документах, вот example.

+0

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

+0

Это логически правильно. Вы можете попробовать в оболочке mongo. Я пробовал. –

Смежные вопросы