使用$push操作符时,如何确保mongodb数组中的项是唯一的

使用$push操作符时,如何确保mongodb数组中的项是唯一的,mongodb,Mongodb,我正在设计一个以班级和学生为实体的mongodb应用程序 var student_schema = new mongoose.Schema({ name: String, age : String }) var class_schema = new mongoose.Schema({ name : String, students : [] }); 在这个模式中,很明显,一个类可以有多个学生,但该类中的每个学生都是唯一的 var

我正在设计一个以班级和学生为实体的mongodb应用程序

var student_schema = new mongoose.Schema({
    name: String,
    age : String
})
var class_schema = new mongoose.Schema({
    name : String,                 
    students : []
});
在这个模式中,很明显,一个类可以有多个学生,但该类中的每个学生都是唯一的

var query = {name:class_name};
var update = {"$push":{ 'students': {'name': student_name}; 
model.update(query, update,option,function(err,data){
    if(err) callback(err);
    else callback(null,data);       
});
在这里,我只是使用$push将学生添加到类列表中,但是$push操作符没有检查列表中项目的唯一性,这意味着我可以在列表中添加同一个学生两次


如何防止这种情况发生?

您可以使用操作符来确保没有添加重复的项目,而不是$push