Estoy usando mongoose y cada vez que trato de usar un método que creé para un esquema, arroja el siguiente mensaje de error:
UnhandledPromiseRejectionWarning: TypeError: findItem.updatePrice is not a functionDefinición del modelo y creación de instancias:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/shopApp') .then(()=>{ console.log('Working!'); }) .catch(err=>{ console.log('Error'); console.log(err); }) const productSchema = new mongoose.Schema({ name: { type: String, required: true }, price: { type: Number } }) const product = mongoose.model('product', productSchema); const bike = new product({name:'MTB', price: 599}); productSchema.methods.updatePrice = function(newprice){ this.price = newprice; return this.save(); } const updatedPrice = async ()=>{ const findItem = await product.findOne({name:'MTB'}); await findItem.updatePrice(500); } updatedPrice();El ejemplo en los documentos define los métodos de instancia antes de crear una instancia de él.
productSchema.methods.updatePrice = function(newprice){ this.price = newprice; return this.save(); } const product = mongoose.model('product', productSchema); const bike = new product({name:'MTB', price: 599});