1

Trying to make a field auto-increment I use Mongoose Sequence but it never auto-increments as Mongoose always throws me the following error:

Error: Product validation failed: idProduct: Cast to Number failed for value "undefined" (type string) at path "idProduct"
at ValidationError.inspect (C:\Users\Posh\Desktop\api2\node_modules\mongoose\lib\error\validation.js:48:26) at formatValue (node:internal/util/inspect:763:19) at inspect (node:internal/util/inspect:340:10) at formatWithOptionsInternal (node:internal/util/inspect:2006:40) at formatWithOptions (node:internal/util/inspect:1888:10) at console.value (node:internal/console/constructor:323:14) at console.log (node:internal/console/constructor:359:61) at newProduct (C:\Users\Posh\Desktop\api2\controllers\products.js:87:17) at processTicksAndRejections (node:internal/process/task_queues:96:5) { errors: { idProduct: CastError: Cast to Number failed for value "undefined" (type string) at path "idProduct"

This is my model and how it configures Mongoose Sequence:


const { Schema, model } = require('mongoose');
const mongoosePaginate = require('mongoose-paginate-v2');
const mongoose = require('mongoose');
const AutoIncrement = require('mongoose-sequence')(mongoose);

const ProductSchema = Schema (
  {
    barCode: {
        type: String,
        maxlength:64,
        unique: true,
        required: [true, 'El Código de Producto es obligatorio']
    },
    idProduct: {
        type: Number,
        unique: true
    }
  }  
);
ProductSchema.plugin(AutoIncrement, {inc_field: 'idProduct'});
ProductSchema.plugin(mongoosePaginate);
module.exports = model('Product', ProductSchema);

I really don't understand what is happening since I only copied and pasted the Mongoose Sequence configuration as it is in other models where it works perfectly.

OscarDev
  • 917
  • 14
  • 34

1 Answers1

0

Try this one

const mongoosePaginate = require('mongoose-paginate-v2');
const mongoose = require('mongoose');
const AutoIncrement = require('mongoose-sequence')(mongoose);

const ProductSchema = Schema (
  {
    barCode: {
        type: String,
        maxlength:64,
        unique: true,
        required: [true, 'El Código de Producto es obligatorio']
    },
    idProduct: Number
  }  
);
ProductSchema.plugin(AutoIncrement, {inc_field: 'idProduct', disable_hooks: true});
ProductSchema.plugin(mongoosePaginate);
module.exports = model('Product', ProductSchema);```
Zahid Cakici
  • 259
  • 1
  • 5