2017-01-22 50 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' –