10

MongoDB 用に Mongoose で自動インクリメント ID を作成したいと考えています。すでにいくつかの例を探していましたが、MongoDB のドキュメント以外に役立つものはありません。

4

2 に答える 2

6

mongoose-sequence を使用します。例: 以下のモデルでは、新しいドキュメントが挿入されると、注文番号が 1 つ増えます。

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を追加すると、操作が中断されます。

ルート ファイルで、マングース注文オブジェクトを作成し、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-incrementおよびmongoose-sequenceパッケージがあります。

于 2016-10-04T06:53:04.207 に答える