no, don't do it

regular _id are taken as usual. 
__id fields are references to another collection documents inside one document 
(something that  mongo does not have by itself). 

And I like like that :)

Esteban

On Jul 8, 2013, at 2:38 PM, Esteban A. Maringolo <emaring...@gmail.com> wrote:

> But, as far as I know, Mongo will create an _id key with an Mongo OID
> for every document that doesn't have one.
> You can use _id without having to use an OID, you can use plain
> strings or integers.
> 
> So I guess it is safe to use _id. I'll change it in my tests and then
> let you know.
> 
> :)
> Esteban A. Maringolo
> 
> 
> 2013/7/8 Esteban Lorenzano <esteba...@gmail.com>:
>> Because _id is internally used by mongo and I didn't wanted to risk any 
>> collision :)
>> 
>> On Jul 8, 2013, at 2:26 PM, "Esteban A. Maringolo" <emaring...@gmail.com> 
>> wrote:
>> 
>>> Esteban,
>>> 
>>> Why do you use __id: (double underscore) instead of the _id (single
>>> underscore) key?
>>> 
>>> Regards,
>>> Esteban A. Maringolo
>>> 
>>> 
>>> 2013/7/8 Esteban Lorenzano <esteba...@gmail.com>:
>>>> Hi again,
>>>> 
>>>> sadly, there is no direct support for referenced queries yet.
>>>> 
>>>> however, you can workaround the problem by doing:
>>>> 
>>>> 
>>>> {
>>>> 'referenceField.__id' -> (VORepository current keyOf: referenceObject)
>>>> } asDictionary.
>>>> 
>>>> or with MongoQueries:
>>>> 
>>>> [ :each | (each at: 'referenceField.__id') =  (VORepository current keyOf:
>>>> referenceObject) ]
>>>> 
>>>> Some internal info:
>>>> in Voyage, all references are kept in mongo as sub-documents with this
>>>> structure:
>>>> 
>>>> {
>>>> '__id': OID(1234567890).
>>>> '#collection': 'theNameOfTheCollection'.
>>>> }
>>>> 
>>>> so, you always can construct queries  knowing that :)
>>>> 
>>>> Esteban
>>>> 
>>>> On Jul 8, 2013, at 12:58 PM, Bernat Romagosa
>>>> <tibabenfortlapala...@gmail.com> wrote:
>>>> 
>>>> Also, how does one query a referenced object?
>>>> 
>>>> MyClass selectMany: { 'project.name' -> 'Test' } asDictionary. "<-- Works
>>>> only if project is an embedded object, but it doesn't if it's a reference."
>>>> 
>>>> 
>>>> 2013/7/8 Bernat Romagosa <tibabenfortlapala...@gmail.com>
>>>>> 
>>>>> 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.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Bernat Romagosa.
>>>> 
>>>> 
>>> 
>> 
>> 
> 


Reply via email to