update example javascript node.js mongodb mongoose

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 });