json - una - update en mongodb
¿Cómo actualizo un valor único en un documento json usando jq? (1)
Disculpas si he pasado por alto algo muy obvio;
Acabo de encontrar
jq
y estoy tratando de usarlo para actualizar un valor JSON sin afectar los datos circundantes.
Me gustaría canalizar un resultado
curl
en
jq
, actualizar un valor y canalizar el JSON actualizado a un
curl -X PUT
.
Algo como
curl http://example.com/shipping.json | jq ''.'' field: value | curl -X PUT http://example.com/shipping.json
Hasta ahora lo he pirateado usando
sed
, pero después de ver algunos ejemplos del operador
|=
en
jq
, estoy seguro de que no los necesito.
Aquí hay una muestra de JSON: ¿cómo usaría
jq
para establecer
"local": false
, mientras se preserva el resto de JSON?
{
"shipping": {
"local": true,
"us": true,
"us_rate": {
"amount": "0.00",
"currency": "USD",
"symbol": "$"
}
}
}
Establece valores de un objeto usando el operador
=
.
|=
por otro lado se utiliza para actualizar un valor.
Es una diferencia sutil pero importante.
El contexto de los filtros cambia.
Como está estableciendo una propiedad en un valor constante, use el operador
=
.
.shipping.local = false
Solo tenga en cuenta que al establecer un valor en una propiedad, no necesariamente tiene que existir. Puede agregar nuevos valores fácilmente de esta manera.
.shipping.local = false | .shipping.canada = false | .shipping.mexico = true