Встреча с чем-то, что, как я думал, сработало, но это не так.
У меня есть следующая функция, которая принимает данные и должна обновить одно значение в mongodb.
const updateSkillXP = (data) =>{
//data = { username:username, sk:sk, xp:100 }
const collection = db.collection('player');
let q = {username:data.username}
//craft a key depending on what skill code comes through.
let s = "skills."+data.sk;
u = {$set: {s : data.xp}}
return collection.updateOne(q,u,(err,res) =>{
if(err) console.log(err);
})
}
Документ MongoDB выглядит следующим образом
player = {
x:0,
y:0,
username:"foo",
skills : { //I need one of the following to update.
atk:0,
str:0,
def:0,
hp:0
}
}
Когда я выполнил вышеизложенное, он добавил свойство 'S', но я ожидал изменить значение скажем 'atk' на то, что когда-либо происходило через xp?