Node.js 有没有办法在Mongo Db中使用一个整数自动增量字段作为不同于标准id的文档/表的一部分?

Node.js 有没有办法在Mongo Db中使用一个整数自动增量字段作为不同于标准id的文档/表的一部分?,node.js,mongodb,auto-increment,autonumber,Node.js,Mongodb,Auto Increment,Autonumber,我们希望在Mongo Db document/“table”中有一个整数自动递增字段,可能与自动生成的唯一id索引不同 其目的是为用户提供一个唯一的可读数字,自动递增,用作与我们正在使用的数据库表关联的逻辑实体的引用。例如,用户将参考该编号以识别与该实体关联的打印文档 预期的行为是在数据库表本身中自动增加该数字,就像在不同类型的数据库中一样 我们已经用组合实现了我们的项目:Vue JS-Node-Mongo db。这样做的目的是避免使用一些JS“技巧”来实际增加数字,而直接在文档模型中执行此操作

我们希望在Mongo Db document/“table”中有一个整数自动递增字段,可能与自动生成的唯一id索引不同

其目的是为用户提供一个唯一的可读数字,自动递增,用作与我们正在使用的数据库表关联的逻辑实体的引用。例如,用户将参考该编号以识别与该实体关联的打印文档

预期的行为是在数据库表本身中自动增加该数字,就像在不同类型的数据库中一样

我们已经用组合实现了我们的项目:Vue JS-Node-Mongo db。这样做的目的是避免使用一些JS“技巧”来实际增加数字,而直接在文档模型中执行此操作

我们在官方文件中找不到类似的东西,有人能帮我们吗?
非常感谢。MongoDB没有自动递增功能(内置)。 需要编写额外的逻辑才能做到这一点

您可以通过在名为“user_sequence”的单独集合中跟踪“id”并在MongoDB中存储自定义函数以获取下一个值来解决此问题

看看:

创建如下查询:

db.users.insert({
    userid: sequenceNextValue("userid")
})
MongoDB提供的分步教程:

参考:-

方式-2

如果您喜欢使用Mongoose(节点库)。 下面的代码将帮助您

var CounterSchema = Schema({
    _id: {type: String, required: true},
    seq: { type: Number, default: 0 }
});
var counter = mongoose.model('counter', CounterSchema);

var entitySchema = mongoose.Schema({
    testvalue: {type: String}
});

entitySchema.pre('save', function(next) {
    var doc = this;
    counter.findByIdAndUpdate({_id: 'entityId'}, {$inc: { seq: 1} }, function(error, counter)   {
        if(error)
            return next(error);
        doc.testvalue = counter.seq;
        next();
    });
});

非常感谢Venkatesh Pogartha,我一定会尝试一下并返回给您。请注意,这种方法可能会对应用程序性能产生重大影响。感谢您的警告。您是否认为有不同的方法来解决此问题,从而降低性能影响?