10

我想用 Mongoose 为 MongoDB 创建自动增量 ID。我已经在寻找一些例子了,但是除了 MongoDB 的文档之外没有任何有用的东西。

4

2 回答 2

6

使用 mongoose-sequence,例如:在下面的模型中,当插入新文档时,它会将订单号加一。

const mongoose = require('mongoose'),
Schema = mongoose.Schema;

const AutoIncrement = require('mongoose-sequence')(mongoose);

const orderSchema = new Schema({
   _id: mongoose.Schema.Types.ObjectId,
   orderId: {
     type: Number
   }
   ...
});

orderSchema.plugin(AutoIncrement, {inc_field: 'orderId'});
module.exports = mongoose.model('Order', orderSchema);

有一件重要的事情需要理解。如果在模式中添加required: true ,则操作会中断

在您的路由文件中,您可以创建一个 mongoose 订单对象并调用 save。

...
const order = new Order(body);
order.save()
     .then(doc => {
       res.json(doc);
       res.end();
     });
于 2020-03-06T17:17:55.633 回答
5

在 npm 上,我们有mongoose-auto-incrementmongoose-sequence包可以很容易地实现这个功能。

于 2016-10-04T06:53:04.207 回答