tengo este codigo
for (var i = 0; i < lootbox.length; i++) { const { type } = lootbox[i] const query = type + "_lootbox.hunt"; await lb.findOneAndUpdate( { userID: message.author.id }, { $inc: { query: 1 } } ); } el código lee la query como su propia variable en lugar del type + "_lootbox.hunt" , ¿hay alguna forma de usar esa consulta dentro de $inc ? porque quiero automatizarlo usando el ciclo
también conocido como clave de objeto dinámico
El problema aquí es que está tratando de crear un objeto sobre la marcha, pero no puede establecer una clave como esa dinámicamente.
Para lograrlo, debe preparar este objeto antes de usarlo.
Y, en tal caso, su código sería algo como esto,
for (var i = 0; i < lootbox.length; i++) { const { type } = lootbox[i] const query = type + "_lootbox.hunt"; const tempObject = {}; // Creating an empty Object tempObject[query] = 1; // Dynamic key usage await lb.findOneAndUpdate( { userID: message.author.id }, { $inc: tempObject } // Using the tempObject ); }Según tengo entendido, lo que quiere es esto: en cada iteración, la query se convierte en type + "_lootbox.hunt" , por ejemplo, page1_lootbox.hunt . Y lo que quieres obtener es { $inc: { "page1_lootbox.hunt": 1 }} . Si es así, una solución simple será
{ $inc: { [query]: 1 } } // { $inc: { "page1_lootbox.hunt": 1 } }Avísame si quieres algo diferente.