2017-01-22 51 views

回答

2

在航程,你必须做这样的事情:

Users selectMany: [ :each | (each at: 'services.facebook.email') = '[email protected]' ] 

由于这是MongoQueries,如果您正在使用直接MongoTalk(不含远航),你可以执行你的MongoCollection相同的查询。

+0

这是伟大的@EstebanLM感谢您的快速答复! –

4

您可以查询使用“常规”蒙戈查询(又名JSON /词典查询)或使用MongoQuery使用Block语法:

mongo := Mongo default. 
db := mongo databaseNamed: 'test'. 
users := db getCollection: 'users'. 

user1 := { 'services' -> { 
    'facebook' -> { 'email' -> '[email protected]' } asDictionary 
    } asDictionary 
} asDictionary. 

users add: user1. 

"Query using dictionary" 
users select: {'services.facebook.email' -> '[email protected]'} asDictionary. 

"Query using MongoQuery" 
users select: [ :each | (each at: 'services.facebook.email') = '[email protected]' ]. 
+1

您也可以简单地使用'用户选择:{'services.facebook.email' - >'[email protected]'}'。这可能与您最初的MongoShell语法最接近。 –

+0

是的,我用这个建议是因为它是最简洁的。按照您的建议,这些配对命名为'asMongoQuery'或'asDictionary' –