Suponiendo que tengo la siguiente estructura del documento:¿Cómo actualizar un objeto en matrices anidadas en mongo db?
{
"name": "myProduct",
"perspectives" : [
{
"name": "p1",
"views" : [
{
"name": "v1"
},
{
"name": "v2"
}
]
},
{
"name": "p2",
"views" : [
{
"name": "v1"
},
{
"name": "v2"
}
]
}
]
}
¿Cómo hago para actualizar la estructura del documento para agregar un campo "alias" para cada uno de los puntos de vista?
Básicamente estoy buscando hacer algo como perspective.views.alias: "av1" para todas las perspectivas.vistas.nombre: "v1".
La estructura resultante se vería así:
{
"name": "myProduct",
"perspectives" : [
{
"name": "p1",
"views" : [
{
"name": "v1",
"alias": "av1"
},
{
"name": "v2",
"alias": "av2"
}
]
},
{
"name": "p2",
"views" : [
{
"name": "v1",
"alias": "av1"
},
{
"name": "v2",
"alias": "av2"
}
]
}
]
}
Para aclarar, me gustaría hacer algo como esto:
foreach (view in product.perspectives.views)
{
if (view.name == "p1")
view.add("alias", "av1");
}
¿No puede extraer los datos con el idioma que esté utilizando, recorrerlos como lo hace en la parte inferior y actualizarlos? ¿O estás tratando de hacerlo en una sola consulta? Si este es el caso, mira esto: http://www.mongodb.org/display/DOCS/Server-side+Code+Execution –
Gracias Shane! Sí, lo hago desde la consola como scripts en lugar de hacerlo desde una aplicación y un lenguaje de nivel superior (como Java, por ejemplo). Aunque podría seguir la ruta de la aplicación si resulta ser más fácil/más productivo. – longda