Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何在Pharo上使用MongoTalk查询嵌套属性?_Mongodb_Mongodb Query_Pharo - Fatal编程技术网

Mongodb 如何在Pharo上使用MongoTalk查询嵌套属性?

Mongodb 如何在Pharo上使用MongoTalk查询嵌套属性?,mongodb,mongodb-query,pharo,Mongodb,Mongodb Query,Pharo,我试图在doc的嵌套属性上创建一个Mongo查询,在javascript Mongo shell中应该是: db.users.find({“services.facebook.email”:some@example.com“}) 如何使用MongoTalk查询执行该查询?在Voyage中,您必须执行以下操作: Users selectMany: [ :each | (each at: 'services.facebook.email') = 'some@example.com' ] 由于这是M

我试图在doc的嵌套属性上创建一个Mongo查询,在javascript Mongo shell中应该是:

db.users.find({“services.facebook.email”:some@example.com“})


如何使用MongoTalk查询执行该查询?

在Voyage中,您必须执行以下操作:

Users selectMany: [ :each | (each at: 'services.facebook.email') = 'some@example.com' ]

由于这是MongoQuery,如果您直接使用MongoTalk(不带Voyage),您可以在MongoCollection中执行相同的查询。

您可以使用“常规”Mongo查询(也称为JSON/字典查询)或使用
MongoQuery
使用
语法:

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' ].

太好了@EstebanLM谢谢你的快速回答!您也可以简单地使用
用户选择:{'services.facebook.email'->'some@example.com“}
。这可能是最接近你最初的MongoShell语法。是的,我使用了这个建议,因为它是最简洁的。按照您的建议,这些对将
命名为MongoQuery
命名为Dictionary