一直使用mongodb 3.2,mongoose-auto-increment 5.0.1和mongoose 5.0.1 都没有问题,有一天,使用mongodb 3.4就出问题了,在创建id自动增加的功能的时候,出错,代码如下:
let autoIncrement = require('mongoose-auto-increment');
accountSchema.plugin(autoIncrement.plugin, {
model: 'pf_account',
field: 'id',
startAt: 10000,
unique: false,
incrementBy: 1
});
报如下错误:
Unhandled rejection MongoError: The field 'required' is not valid for an index specification. Specification:
{ ns: "xyz.identitycounters",
key: { field: 1, model: 1 }, name: "field_1_model_1", unique: true, required: true, index: -1, background: true }
at Function.MongoError.create (.../node_modules/mongodb-core/lib/error.js:31:11)
at .../node_modules/mongodb/lib/db.js:1093:80
at .../node_modules/mongodb-core/lib/connection/pool.js:469:18
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickDomainCallback (internal/process/next_tick.js:122:9)
This statement was executed
identitycounters.createIndex({ field: 1, model: 1 }, { unique: true, required: true, index: -1, background: true })
然后就一脸圈圈,只好google(用百度,你用到死,都解决不了问题),找到了,看到很多人都碰到这样的问题,于是有人说,用mongoose-auto-increment-fix,原来的作者没有更新。切换成mongoose-auto-increment-fix问题解决。
解决问题的贴子:https://github.com/chevex-archived/mongoose-auto-increment/issues/74
对比了一下代码,就是一行的事: