我正在尝试在doc的嵌套属性上创建一个Mongo查询,在javascript Mongo shell中它将是:
db.users.find({"services.facebook.email": "some@example.com"})
如何使用MongoTalk查询执行该查询?
答案 0 :(得分:4)
您可以使用“常规”Mongo查询(a.k.a. JSON / Dictionary查询)或MongoQuery
使用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' ].
答案 1 :(得分:2)
在Voyage中,你必须做这样的事情:
Users selectMany: [ :each | (each at: 'services.facebook.email') = 'some@example.com' ]
由于这是MongoQueries,如果你直接使用MongoTalk(没有Voyage),你可以在MongoCollection中执行相同的查询。