Thanks. I figured out what I was doing wrong.
On Mon, Nov 13, 2017 at 5:36 PM Christian Grün christian.gruen@gmail.com wrote:
The update keyword is a so-called “non-updating expression”; the result will not have any effect on the database. You can use the simple map operator…
db:open('db','country')/json[countryId = 1] ! ( replace value of node countryName with 'Aldorria', insert node <population type="number">1000</population> into . )
…or FLWOR expressions, etc. to change nodes in the database.
See e.g. [1] to learn more about XQuery Update. ___________________________
[1] http://docs.basex.org/wiki/XQuery_Update
On Sun, Nov 12, 2017 at 6:12 AM, E. Wray Johnson wray.johnson@gmail.com wrote:
I have tried many ways of updating JSON objects and none seem to work. Using the BaseX GUI, the Result window seems to show the correct outcom,
but
the database is not modified. What am I missing? Do I need to explicitly start/stop a transaction?
XQUERY: db:open('db','country')/json[countryId = 1] update { replace value of node countryName with 'Aldorria', insert node <population type="number">1000</population> into . }
Result:
<json type="object"> <countryId type="number">1</countryId > <countryName>Aldorria</countryName> <population type="number">1234</population> <planetName>Zeldon</planetName> </json>