Thanks. I figured out what I was doing wrong. On Mon, Nov 13, 2017 at 5:36 PM Christian Grün <christian.gr...@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.john...@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> >