you also have regexp expressions (and I think they are better than the where 
clause): 

{ 
        #name -> {
                        '$regex' -> '^P*'. 
                        '$options' -> 'i' 
                } asDictionary 
        } asDictionary

there is no support for it with MongoQueries, but they work fine with 
dictionaries :)

Esteban

On Jul 4, 2013, at 7:36 PM, Bernat Romagosa <tibabenfortlapala...@gmail.com> 
wrote:

> For other kinds of matches, you need javascript queries, if I understood:
> 
> User selectOne: [ :each | each where: 'this.name[0] == "s"' ]
> 
> Right?
> 
> 
> 2013/7/4 Stéphane Ducasse <stephane.duca...@inria.fr>
> 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