Ben db belgelerini sayarak ve _id oluşturmak için bu sayıyı kullanarak (ilk _id 0 olduğu varsayılarak), Mongoose modellerim için _id'leri dinamik olarak oluşturmaya çalışıyorum. Ancak, _id değerini değerlerimden ayarlayamıyorum. İşte benim kodum:Mongoose'da db belgesi nasıl ayarlanır?
//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'i bir çok farklı yoldan ayarlamaya çalıştım ama benim için çalışmıyor. İşte son hata var:
{ message: 'Cast to ObjectId failed for value "16" at path "_id"',
name: 'CastError',
type: 'ObjectId',
value: 16,
path: '_id' }
sen neler biliyorsanız, lütfen bana bildirin.
Bunu yaptıktan sonra bile db.collection.getIndexes() '_id: 1' gösteriliyor. Bu doğru davranış mı? –
@SarasArya evet, MongoDB her zaman türüne bakılmaksızın '_id 'için bir dizin oluşturur (bkz. [Burada] (https://docs.mongodb.org/v3.0/core/index-single/#index-type- İD)). – robertklep