如何通过与Mongoose中的文本连接来增加计数?

时间:2017-08-04 10:21:12

标签: node.js mongoose

我查看了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

});

1 个答案:

答案 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

})