我想实现procedureid
&的自动增加ID以下架构中的doctorId
和id应为5位数字。什么是最好的方法。可以给一个示例代码
var hospitalDoctorSchema = new Schema({
Treatment: [{
procedureid: {
type: Number,
required: true,
unique: true,
default: 0
},
doctor: {
doctorId: {
type: Number,
required: true,
unique: true,
dropDups: true,
default: 0
}],
},
},
updated_at: {
type: Date,
required: true,
default: Date.now
}
});
答案 0 :(得分:0)
更新:我做了更改,请仔细阅读此内容。
我知道要解决你想要完成的事情。如果您想要的只是一个数字来跟踪事物并希望它是唯一的,您可以使用Unix时间戳来完成此任务。
设置procedureid的默认值,如下所示:
default : new date().getTime()
getTime是一个函数,它返回自1970年1月1日以来传递的毫秒数,因此您生成的每个id都是唯一的并且大于前一个。
所以你得到一个13位数字,这个数字很大但是每秒最多可以为你的数据库插入1000个!!
如果你认为13太多了,你可以将它降低到9但是包含一些代码行的字符。
首先从npm安装哈希。
npm install hashids --save
现在将其添加到您的文件中。
const hash = require("hashids");
var new_hash = new hash("A salt");
var unique_number = new Date().getTime();
var unique_id = new_hash.encode(unique_number); // This is the unique id with chars included.
您现在可以在任何地方使用unique_id,但在部署应用程序后不要更改salt以避免冲突。