I am using mongoose-plugin-autoinc, a "a fork of mongoose-auto-increment
which has not been maintained in a while" to created auto-generated index _id starting from 0 for each document inserted in my collection.
Here are my two main files:
models.js
let informationAssetsrow = new Schema({
ref: {
type: String
},
dep: {
type: String
},
infAss: {
type: String
},
crJls: {
type: String
},
classification: {
type: String
},
bsOwn: {
type: String
},
dtOwn: {
type: String
},
cmts: {
type: String
},
//THIS IS HOW YOU CAN DEFINE YOUR OWN ID
/**
* truck_id: {
type: Schema.ObjectId, auto: true
}
*/
}, { // This is supposed to make mongoose ignore _id but it didn't
// when I declare _id it actually ignores it -_-
//_id: false
autoIndex: false
})
informationAssetsrow.plugin(autoIncrement, 'informationAssetsRow');
informationAssetsrow.plugin(autoIncrement, {
model: 'informationAssetsRow',
startAt: 0,
incrementBy: 1
});
server.js
router.route('/fillinformationAssets').post((req, res) => {
informationAssetsrow.insertMany([req.body[0], req.body[1], req.body[2], req.body[3], req.body[4], req.body[5], req.body[6]], {
multi: true
}).then(documentsInserted => {
console.log('documentsInserted: ', documentsInserted);
});
});
The result in the database is:
{
"_id": 1,
"ref": "FIRST",
"dep": "FIRST",
"infAss": "FIRST",
"crJls": "FIRST",
"classification": "FIRST",
"bsOwn": "FIRST",
"dtOwn": "FIRST",
"cmts": "FIRST",
"__v": 0
}, {
"_id": 3,
"dep": "TWO",
"ref": "TWO",
"infAss": "TWO",
"crJls": "TWO",
"classification": "TWO",
"bsOwn": "TWO",
"dtOwn": "TWO",
"cmts": "TWO",
"__v": 0
}, {
"_id": 2,
"ref": "THREE",
"dep": "THREE",
"infAss": "THREE",
"crJls": "THREE",
"classification": "THREE",
"bsOwn": "THREE",
"dtOwn": "THREE",
"cmts": "THREE",
"__v": 0
}
As you see the documents are inserted in order (One,Two,Three).
However, the
_id index
is being incremented sporadically:
First document got _id=1
Second Document got _id=3
Third Document got _id=2
When I need them to be ordered in order to access and manipulate the documents properly.
Any help?