Estoy tratando de crear una consulta de Mongo en un atributo anidado del documento, en el shell de javascript Mongo sería:
db.users.find({"services.facebook.email": "some@example.com"})
¿Cómo podría ejecutar esa consulta usando una consulta de MongoTalk?
Puede consultar usando una consulta Mongo "regular" (también conocida como consulta JSON/diccionario) o usando MongoQuery usando la sintaxis de Block :
mongo := Mongo default. db := mongo databaseNamed: 'test'. users := db getCollection: 'users'. user1 := { 'services' -> { 'facebook' -> { 'email' -> 'some@example.com' } asDictionary } asDictionary } asDictionary. users add: user1. "Query using dictionary" users select: {'services.facebook.email' -> 'some@example.com'} asDictionary. "Query using MongoQuery" users select: [ :each | (each at: 'services.facebook.email') = 'some@example.com' ].En Voyage, tienes que hacer algo como esto:
Users selectMany: [ :each | (each at: 'services.facebook.email') = 'some@example.com' ]Dado que se trata de MongoQueries, si está utilizando directamente MongoTalk (sin Voyage), puede ejecutar la misma consulta en su MongoCollection.