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.