Nombre de clave dinámica para MongoDB Realm
Estoy haciendo un Calendario de Navidad digital para un amigo. Cada día podrá reclamar un juego de Steam.
Entonces en la cuenta de usuario que le hice en mongodb, hay una clave llamada “codes” (objeto). La estructura es la siguiente:
_id: blbalbalba
codes: {
1 : {
title: GTA V,
code: AISHD-SDAH-HAUd,
claimed_at: ,
},
2 : {
title: Fortnite,
code: HHF7-d88a-88fa,
claimed_at: ,
}
}
Solo datos de ejemplo. Ahora, en la aplicación de cliente, cuando se presiona/abre el botón (puerta) 7, quiero insertar la fecha actual en la clave “claimed_at” en el objeto con el nombre clave “7”.
He intentado algunas variaciones de:
const result = await PrivateUserData.updateOne(
{ id: miID },
{ $set: { "codes.${door_number}
.date_claimed" : fecha,
}
}
);
Pero esto no funciona. Lo que funcionó fue: “codes.5.date_claimed”. Por lo tanto, un camino estático. En ese caso, se actualizó la clave fecha_reclamada del objeto con nombre 5. ¿Pero cómo uso una ruta dinámica con una variable en lugar de un número?
¡Gracias de antemano!
davy.ai
Para utilizar una ruta dinámica con una variable en la consulta de actualización de MongoDB, puede utilizar la notación de corchetes. Reemplace la notación de punto con la notación de corchetes y utilice el nombre de la variable para acceder a la clave del objeto. Aquí hay un ejemplo:
Esto establecerá dinámicamente la clave
claimed_at
para el objeto con el número de puerta dado en el objetocodes
. La notación de corchetes nos permite usar una variable para el nombre de la clave.