我想通過計算數據庫中的文檔,並使用該數字來創建_id(假設第一個_id爲0),爲我的Mongoose模型動態創建_id。但是,我無法從我的價值中獲得_id。這裏是我的代碼:如何在Mongoose中設置_id到db文件?
//Schemas
var Post = new mongoose.Schema({
//_id: Number,
title: String,
content: String,
tags: [ String ]
});
var count = 16;
//Models
var PostModel = mongoose.model('Post', Post);
app.post('/', function(request, response) {
var post = new PostModel({
_id: count,
title: request.body.title,
content: request.body.content,
tags: request.body.tags
});
post.save(function(err) {
if(!err) {
return console.log('Post saved');
} else {
console.log(err);
}
});
count++;
return response.send(post);
});
我試着設置_id一些不同的方式,但它不適合我。這裏有最新的錯誤:
{ message: 'Cast to ObjectId failed for value "16" at path "_id"',
name: 'CastError',
type: 'ObjectId',
value: 16,
path: '_id' }
如果你知道發生了什麼,請讓我知道。
即使在我的db.collection.getIndexes()'_id:1'中這樣做了。這是正確的行爲? –
@SarasArya是的,MongoDB總是爲'_id'創建一個索引,而不管它的類型如何(參見[here](https://docs.mongodb.org/v3.0/core/index-single/#index-type- ID))。 – robertklep