javascript - example - Cómo configurar el documento_id a db en Mongoose?
mongoose update (2)
Intento crear dinámicamente _id''s para mis modelos Mongoose contando los documentos en el db, y usando ese número para crear el _id (suponiendo que el primer _id sea 0). Sin embargo, no puedo obtener _id para establecer desde mis valores. Aquí está mi código:
//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);
});
Intenté configurar el _id de diferentes maneras, pero no funciona para mí. Aquí está el último error:
{ message: ''Cast to ObjectId failed for value "16" at path "_id"'',
name: ''CastError'',
type: ''ObjectId'',
value: 16,
path: ''_id'' }
Si sabes lo que está pasando, házmelo saber.
La primera parte del código de @ robertklep no funciona para mí (mangosta 4), también es necesario deshabilitar _id
var Post = new mongoose.Schema({
_id: Number,
title: String,
content: String,
tags: [ String ]
}, { _id: false });
y esto funciona para mí
O necesita declarar la propiedad _id
como parte de su esquema (lo ha comentado), o usar la opción _id
y establecerlo en false
(está usando la opción id
, que crea un getter virtual para lanzar _id
a una cadena pero aún creó una propiedad _id
ObjectID, de ahí el error de conversión que obtienes).
Entonces o esto:
var Post = new mongoose.Schema({
_id: Number,
title: String,
content: String,
tags: [ String ]
});
O esto:
var Post = new mongoose.Schema({
title: String,
content: String,
tags: [ String ]
}, { _id: false });