Mongoose自增序列

10

我希望使用Mongoose为MongoDB创建自增ID。我已经查看了一些示例,但除了MongoDB的文档外,没有任何有用的内容。

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();
     });

mongoose-sequence 在 mongo 7 上无法正常工作。 - undefined

5

1
根据我看到的,mongoose-sequence 是最好的选择 - 谢谢。mongoose-auto-increment 使用了已经弃用的函数,并且自 2016 年以来没有更新(被抛弃了?)- 让我们指责 https://github.com/chevex。 - Fusseldieb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接