我試圖創建此文檔的嵌套屬性的蒙戈查詢,在JavaScript蒙戈外殼那就是:如何在Pharo上使用MongoTalk查詢嵌套屬性?
db.users.find({"services.facebook.email": "[email protected]"})
我怎麼能執行使用MongoTalk的查詢查詢?
我試圖創建此文檔的嵌套屬性的蒙戈查詢,在JavaScript蒙戈外殼那就是:如何在Pharo上使用MongoTalk查詢嵌套屬性?
db.users.find({"services.facebook.email": "[email protected]"})
我怎麼能執行使用MongoTalk的查詢查詢?
在航程,你必須做這樣的事情:
Users selectMany: [ :each | (each at: 'services.facebook.email') = '[email protected]' ]
由於這是MongoQueries,如果您正在使用直接MongoTalk(不含遠航),你可以執行你的MongoCollection相同的查詢。
您可以查詢使用「常規」蒙戈查詢(又名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]' ].
您也可以簡單地使用'用戶選擇:{'services.facebook.email' - >'[email protected]'}'。這可能與您最初的MongoShell語法最接近。 –
是的,我用這個建議是因爲它是最簡潔的。按照您的建議,這些配對命名爲'asMongoQuery'或'asDictionary' –
這是偉大的@EstebanLM感謝您的快速答覆! –