Приведенный ниже код пытается установить свойство shop .balance равным 10. При вызове маршрута все функции работают правильно и ошибок не возникает.
Однако после запуска функции и просмотра только что обновленного магазина. Это .balance свойство по-прежнему 0? Почему это? Работает ли это, когда я обновляю что-то с этим синтаксисом везде?
Ниже приведен код.
app.get("/:id/deductBalance/:amount", async function(req, res){
const id = req.params.id
const amount = req.params.amount
let updatedShop = {}
let shop = await Shop.findById(id)
let currentBal = shop.balance
console.log(currentBal)
updatedShop.balance = 10;
Shop.updateOne({id: id}, updatedShop, async function(err){
if(err){
console.log(err)
}
else{
console.log('changed shop bal')
}
})
return res.redirect("/"+id+"/restockItems/option")
})
Ниже приведена схема мангуста для магазина
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var shopSchema = new Schema ({
name: String,
categories: Array,
email: String,
password: String,
img: String,
itemCategories: Array,
manufacturers: Array,
status: String,
balance: Number
});
let Shop = module.exports = mongoose.model('Shop', shopSchema);
ОБНОВЛЕНИЕ: Оказывается, в части Shop.updateOne({id: id}
, id
должно быть _id
, так как у идентификаторов в Монго есть _ перед ними. Спасибо за помощь, ребята!