Как обновить значение в сохраненном массиве в mongodb?

#javascript #node.js #mongodb

Вопрос:

Я сделал такую схему:-

 const mongoose = require('mongoose');
const uniqueValidator = require('mongoose-unique-validator');

const schema=  mongoose.Schema;

const userschema = new schema({
    name: {type :String },
    panNumber: {type :String },
    aadhar: {type :String},
    username: {type :String },
    email: {type :String,},
    password: {type :String },
    number:{type :String},
    groups: [{type :mongoose.Types.ObjectId,required:true,ref:'Group'}],
    transaction: [{type :mongoose.Types.ObjectId,required:true,ref:'Transaction'}],
    shares: [{type: Number}],
    portfolio:[{type: Map}],
},{
    versionKey: false 
  });

userschema.plugin(uniqueValidator);

module.exports = mongoose.models['User'] || mongoose.model("User", userschema)
 

Когда я сохраняю данные, это выглядит так:-

 const userModel = new UserModel({name,
            panNumber,
            aadhar,
            username,
            email,
            password,
            number,
            groups:[],
            shares:[0,0,0,0],
            portfolio:[]
        })
 

Я могу успешно сохранить файл, но когда я пытаюсь обновить значение общих ресурсов, я не могу этого сделать. (Это не выдает ошибку, а скорее показывает успешное выполнение), но данные не обновляются.

 try {
            if(verifyGroupId.genre == 'Gold/Silver'){
                verifyUserId.shares[0] =args.amount
            } if(verifyGroupId.genre == 'Stock'){
                verifyUserId.shares[1] =args.amount
            } if(verifyGroupId.genre == 'Cryptocurrency'){
                verifyUserId.shares[2] =args.amount
            } if(verifyGroupId.genre == 'Currency Exchange'){
                verifyUserId.shares[3] =args.amount
            }
            const newTransaction = new Transaction(args);
            const sess = await mongoose.startSession();
            sess.startTransaction();      
            await newTransaction.save(); 
            verifyGroupId.groupPayment.push(newTransaction._id); 
            verifyGroupId.members.push(verifyUserId._id);
            verifyUserId.groups.push(verifyGroupId._id); 
            verifyUserId.transaction.push(newTransaction._id); 


            await verifyGroupId.save({ session: sess }); 

            await sess.commitTransaction(); 
            console.log(verifyUserId,verifyGroupId,args)

            await verifyUserId.save(); 

            return "Joined";
        } catch (error) {
            throw error
        }
 

Я пытаюсь обновить значение элементов 0,1,2,3 в массиве общих ресурсов. Я могу видеть обновленный идентификатор пользователя, но после сохранения в данные он не обновляется.