Я использую mongoose-plugin-autoinc, "форк mongoose-auto-increment, который давно не поддерживался" для создания автоматически сгенерированного индекса _id, начинающийся с 0, для каждого документа, вставленного в мою коллекцию.
Вот два моих основных файла:
модели.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
});
сервер.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);
});
});
Результат в базе такой:
{
"_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
}
Как видите, документы вставлены по порядку (один, два, три).
Однако
_id индекс
время от времени увеличивается:
Первый документ получил _id=1
Второй документ получил _id=3
Третий документ получил _id=2
Когда мне нужно их заказать, чтобы получить доступ к документам и управлять ими должным образом.
Любая помощь?
_id:false
в свою схему и включитьautoIndex
. затем попробуйте запустить, просто используяtruck_id: { type: Schema.Types.ObjectId}
. Вам не хватает.Types
, хотя в вашемtruck_id {type}
- person Shivam Sood   schedule 25.07.2019