创建用于将数据添加到集合中数组的通用方法

Create a generic method for adding data into an array in a collection

我是 Typescript 的新手。我正在创建一个通用方法来将数据推送到 mongoose 集合中的数组中。数据不会在下面函数的 fieldName 参数中传递,因为它是 $set 运算符中的键字段。请帮助我将值动态传递给 $set 运算符的 Key 字段以使该功能可用。

async createStudentInfo<T>(studentId:ObjectID, fieldName: String, fieldData:Array<T>, errorMessage: String):Promise<Array<T>>{
return new Promise(async (resolve, reject) => {
            try {                
                const result = await studentModel.updateOne(
                    { "_id": studentId },
                    {
                        $set: {
                            fieldName : fieldData
                        }
                    }, 
                    {upsert:true}
                )              
                resolve(fieldData);
            }
            catch (err) {
                reject(errorMessage);
            }
        });
}

要在 JavaScript 中的对象中将变量用作 keys,您需要将它们放在方括号中。

{
  $set: {
    [fieldName] : fieldData
  }
}