Estoy teniendo la siguiente estructura de documento
[ { "network_type": "ex", "rack": [ { "xxxx": { "asn": 111111, "nodes": { "business": [ "sk550abcc1eb01.abc.com", "sk550abcc1eb10.abc.com", "sk550abcc1eb19.abc.com", "sk550abcc1eb28.abc.com" ] }, "region": "ex-01", "zone": "01a" } } ] } ]Necesito cambiar el nombre/actualizar el elemento de matriz clave "xxxx" a "detalles".
Probé el siguiente comando, pero parece que no funciona.
db.collection.update({}, { $rename: { "rack.xxxx": "details" } })ENLACE: https://mongoplayground.net/p/9dcDP-VKZ55
Por favor, ayúdame.
No puede dirigir $rename el nombre del campo que está dentro de la matriz.
En cambio,
Repita con los documentos en la matriz de rank , cree el campo de details con el valor de xxxx y luego agregue este campo a cada documento.
Elimine la ruta con $rank.xxxx para eliminar el campo xxxx de los documentos en la matriz de rank .
db.collection.update({}, [ { $set: { rack: { $map: { input: "$rack", in: { $mergeObjects: [ { "details": "$$this.xxxx" }, "$$this" ] } } } } }, { $unset: "rack.xxxx" } ])