Sorry for being lazy, but how does one use logical operators in dictionary
queries?

I'm trying something like:

(User selectMany: { 'profile.firstName' -> { '$regex' -> '^.*na.*'.
'$options' -> 'i'} asDictionary } asDictionary).

And I'd like to *$or* this with:

'profile.surname' -> { '$regex' -> '^.*ve.*'. '$options' -> 'i'}
asDictionary.


2013/7/6 Stéphane Ducasse <stephane.duca...@inria.fr>

>
> On Jul 6, 2013, at 11:16 AM, Esteban Lorenzano <esteba...@gmail.com>
> wrote:
>
> > sure :)
> >
> > I will add a blog post on "voyage advanced queries" too :)
>
> too if you want but we could also focus on the chapter because we can be
> multiple people to edit it
> while your blog you are alone.
>
> Stef
>
> >
> > Esteban
> >
> > On Jul 6, 2013, at 10:52 AM, Stéphane Ducasse <stephane.duca...@inria.fr>
> wrote:
> >
> >> esteban could you take some time to add this information to the Voyage
> chapter?
> >>
> >>      https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/
> >>
> >> add the information in any format and I can make it run.
> >>
> >>
> https://github.com/SquareBracketAssociates/PharoForTheEnterprise-english
> >>
> >> Stef
> >>
> >>
> >>
> >> On Jul 4, 2013, at 7:49 PM, Esteban Lorenzano <esteba...@gmail.com>
> wrote:
> >>
> >>> you have different constructions:
> >>>
> >>> { $gt: { "number_field": 42  } }
> >>>
> >>> and so on... always with dictionaries (bah, json structs).
> >>>
> >>> as a query language it kinda sucks... but well... is how it is :)
> >>>
> >>> On Jul 4, 2013, at 7:34 PM, Stéphane Ducasse <
> stephane.duca...@inria.fr> wrote:
> >>>
> >>>> Ok but how do I map conceptual a query to a dictionary
> >>>>
> >>>> Do I guess right that there is an exact match
> >>>>
> >>>>    selectOne: { id -> 10} asDictionary
> >>>>
> >>>> will match id = 10
> >>>>
> >>>> Now we can only do exact mathc?
> >>>>
> >>>>    name matches: 'stef*'
> >>>>
> >>>>
> >>>> On Jul 4, 2013, at 6:04 PM, Esteban A. Maringolo <
> emaring...@gmail.com> wrote:
> >>>>
> >>>>> Stef,
> >>>>>
> >>>>> You're asking the other Esteban, but having used Voyage and Mongo I
> >>>>> think I can answer this.
> >>>>>
> >>>>> Mongo receives a JSON object to do all the query filtering. For a
> >>>>> simple lookup it is has a simple structre, as the query gets more
> >>>>> complex it gets esoteric as well (with "special" MongoDB keys in the
> >>>>> format of "$key").
> >>>>>
> >>>>> Because the simplest map we have to a JSON Object is the Dictionary,
> I
> >>>>> guess that's why it ends up being converted to a Dictionary, which in
> >>>>> turn gets converted to JSON and/or BSON.
> >>>>>
> >>>>> Regards,
> >>>>>
> >>>>> Esteban A. Maringolo
> >>>>>
> >>>>>
> >>>>> 2013/7/4 Stéphane Ducasse <stephane.duca...@inria.fr>:
> >>>>>>
> >>>>>> On Jul 4, 2013, at 2:58 PM, Esteban Lorenzano <esteba...@gmail.com>
> wrote:
> >>>>>>
> >>>>>> Hi :)
> >>>>>>
> >>>>>> can you check if you have the "MongoQueries" package installed?
> >>>>>>
> >>>>>> cheers,
> >>>>>> Esteban
> >>>>>>
> >>>>>> ps: please notice that in anycase you will not be able to execute
> >>>>>>
> >>>>>> [ :each | each name first = $X ]
> >>>>>>
> >>>>>> because the MongoQueries package just translates the block into a
> >>>>>> mongo-query which is a dictionary (a JSON expression). But you will
> found
> >>>>>> some ways to help you, some special keywords like #in: and #where:
> (you can
> >>>>>> see how they work in the tests)
> >>>>>>
> >>>>>>
> >>>>>> esteban
> >>>>>> how a dictionary is used to work as a block for a query?
> >>>>>> Can you explain because I would have thought that the first line
> did not
> >>>>>> work and the second would work.
> >>>>>>
> >>>>>> Stef
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Jul 4, 2013, at 2:17 PM, Bernat Romagosa <
> tibabenfortlapala...@gmail.com>
> >>>>>> wrote:
> >>>>>>
> >>>>>> Hi!
> >>>>>>
> >>>>>> I realize probably only Esteban will be able to answer, but I
> prefer to
> >>>>>> write to the list so the mail is logged and other people can
> benefit from
> >>>>>> it.
> >>>>>>
> >>>>>> I'm trying to use blocks as arguments for #selectOne: and
> #selectMany:, but
> >>>>>> it doesn't seem to work. Here's my code:
> >>>>>>
> >>>>>> MyClass selectOne: { #name -> 'Some name' } asDictionary.
> >>>>>> MyClass selectOne: [ :each | each name = 'Some name' ].
> >>>>>>
> >>>>>>
> >>>>>> The first one works, but the second one raises a
> VOMongoConnectionError.
> >>>>>>
> >>>>>> Also:
> >>>>>>
> >>>>>> MyClass selectMany: { #name -> 'Some name' } asDictionary.
> >>>>>> MyClass selectMany: [ :each | each name = 'Some name' ].
> >>>>>>
> >>>>>>
> >>>>>> The first does work, the second one doesn't, which prevents me from
> writing
> >>>>>> more useful stuff like:
> >>>>>>
> >>>>>> MyClass selectMany: [ :each | each name first = $P ].
> >>>>>>
> >>>>>> Any idea why this could be failing? I've the latest stable version
> loaded
> >>>>>> via:
> >>>>>>
> >>>>>> Gofer it
> >>>>>> url: 'http://smalltalkhub.com/mc/estebanlm/Voyage/main';
> >>>>>> package: 'ConfigurationOfVoyageMongo';
> >>>>>> load.
> >>>>>> (Smalltalk at: #ConfigurationOfVoyageMongo) load.
> >>>>>>
> >>>>>> Thanks! :)
> >>>>>>
> >>>>>> Bernat.
> >>>>>>
> >>>>>> --
> >>>>>> Bernat Romagosa.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> >
> >
>
>
>


-- 
Bernat Romagosa.

Reply via email to