我有两个模型,实体和帖子,我试图在每个唯一实体的帖子上创建一个自动递增的计数器:
//entity
var entitySchema = mongoose.Schema({
name: String,
counter: Number,
});
//post
var postSchema = mongoose.Schema({
test: String,
entity: {
type: Schema.Types.ObjectId,
ref: 'entity'
},
ticketNumber: Number //this needs to auto increment starting at zero PER user, so entity A has a 1+, entity 2 has a 1+, etc
});
我可以在实体上有一个序列,每次创建帖子并使用它时都要检查它,但这可能有重复。
我发现了一篇帖子,建议在帖子上保存一个“保存”,但这对每个实体来说都不是唯一的,只是整体上是唯一的。
任何方法可以让这个工作在模型本身上/更好的方法吗?
答案 0 :(得分:0)
您可以使用名为mongoose-auto-increment的npm包。
您的连接看起来像这样:
var autoIncrement = require('mongoose-auto-increment');
var connection = mongoose.connect('YOUR CONNECTION');
autoIncrement.initialize(connection);
你的架构看起来像这样:
var postSchema = mongoose.Schema({
test: String,
entity: {
type: Schema.Types.ObjectId,
ref: 'entity'
},
ticketNumber: Number
});
postSchema.plugin(autoIncrement.plugin, { model: 'NAME YOUR MODEL', field: 'ticketNumber', startAt: 0, incrementBy: 1 });