我查看了mongoose-sequence插件,但它只能以数字格式存储,计数器将从0开始。
我需要创建一个独特的自定义ID(mycustomID),如:ABCD1001。 ABCD是前缀值。我的柜台将从1001开始。
我期望通过使用schema.pre(“save”)来实现这一目标。我是Mongoose的新手。有人可以提供有关如何实现这一目标的任何信息吗?
这是我的架构
var bookSchema = new Schema({
name: { type: String, required: true},
isbn: { type: String},
prefix: {type: String},
mycustomID: {type: String, unique: true},
author: { type: String, required: true},
status: { type: Boolean, default: true },
created_at: Date,
updated_at: Date
});
答案 0 :(得分:0)
您可以使用下面的命令从DB获取最后插入的值,这样您将获得最后一个customId。
只需使用previousCustomId.replace( /^\D+/g, '')
转换该customId并将其递增。
bookSchema.find({}).sort({_id:-1}).limit(1, function(err, data) {
var previousCustomId = data[0].mycustomID; //Make sure it will return data object or data array
var currentCustomId = parseInt(previousCustomId.replace( /^\D+/g, '')) + 1;
//Your next entry will be here
})