【问题标题】:Prevent Entry of duplicate data to MongoDB Database when using Node Js Mongoose使用 Node Js Mongoose 时防止向 MongoDB 数据库输入重复数据
【发布时间】:2020-10-19 16:57:39
【问题描述】:

我正在使用 MongoDB 数据库编写一个 Node JS 系统。我将猫鼬用于 ORM。我想向数据库中插入新数据,并让系统告诉我们,如果数据已经创建,则不会创建数据。 假设我的集合中有一个数据 Timetable

Subject=English
Classroom=6 Usaha
timeslot=10.00
Day=Monday

如何防止系统向数据库创建数据,该数据与我提到的数据具有完全相同的值?我正在考虑编写一个像这样的架构

subject: {

type:String,
unique:true,
}

Classroom: {

type:String,
unique:true,

}

timeslot: {

type:String,
unique:true,

}

Day: {

type:String,
unique:true,

}

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    您只需要在schema level 处创建一个新的compound index 即可:

    yourSchema.index({
      subject: 1, Classroom: 1, timeslot: 1, Day: 1
    }, { unique: true });  
    

    请确保此索引字段名称和架构字段名称完全相同。

    此外,这里的字段名称后面的1 指定了一个按升序排列项目的索引。

    这将阻止系统向数据库创建数据,该数据与您提到的数据具有完全相同的值。

    【讨论】:

    • 我必须在我的模型文件夹中创建另一个文件还是只在现有模型上写入?
    • 创建schema后才能在同一个模型中进行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    相关资源
    最近更新 更多