Re: [basex-talk] Update operations on JSON objects are not working

2017-11-13 Thread E. Wray Johnson
Thanks.  I figured out what I was doing wrong.

On Mon, Nov 13, 2017 at 5:36 PM Christian Grün 
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 1000 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 
> 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 1000 into .
> > }
> >
> >
> > Result:
> > 
> >   1
> >   Aldorria
> >   1234
> >   Zeldon
> > 
>


Re: [basex-talk] Update operations on JSON objects are not working

2017-11-13 Thread Christian Grün
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 1000 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  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 1000 into .
> }
>
>
> Result:
> 
>   1
>   Aldorria
>   1234
>   Zeldon
>