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