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.
>>> 
>>> 
>>> 
>> 
> 
> 


Reply via email to