Mongodb 指定要在VoyageMongo中返回的字段

Mongodb 指定要在VoyageMongo中返回的字段,mongodb,pharo,Mongodb,Pharo,我正在寻找限制VoyageMongo查询返回字段的可能性。 假设我有db.persons字段personId、firstName、lastName。 在Mongo,我可以通过 db.persons.find{},{'personId':1} 在VoyageMongo中,发送到JSON查询的所有字典条目似乎都被整理成$and查询。MongoQuery中有instVar和字段访问器,但我不知道如何设置它们。 有没有办法指定VoyageMongo中的返回字段 问候 Max在搜索了一段时间后,我找到的唯

我正在寻找限制VoyageMongo查询返回字段的可能性。 假设我有db.persons字段personId、firstName、lastName。 在Mongo,我可以通过 db.persons.find{},{'personId':1} 在VoyageMongo中,发送到JSON查询的所有字典条目似乎都被整理成$and查询。MongoQuery中有instVar和字段访问器,但我不知道如何设置它们。 有没有办法指定VoyageMongo中的返回字段

问候


Max

在搜索了一段时间后,我找到的唯一选项是扩展类、VoMongoRespository、VoMongoResolver和MongoCollection。 我添加了一个带有 类>>选择多个:锁定选项:某些选项 ^自航存储选择多个:自航位置:锁定选项:某些选项 VOMongoRepository>>选择多个:A类,其中:A字典选项:某些选项 |精选| 所选:=解析程序selectMany:aClass其中:aDictionary options:someOptions。 ^aClass=aClass persistentClass ifTrue:[选定] ifFalse:[所选选择:[:each | each isKindOf:aClass]] VoMongorPositoryResolver>>选择Many:aClass其中:字典选项:someOptions 自执行:[^self-basicSelectMany:aClass其中:字典选项:someOptions] VoMongorPositoryResolver>>基本选择多个:aClass其中:字典选项:某些选项 选择aClass实例应该在mongo查询中完成,而不是在这里 自我标志:todo。 ^self-basicRawSelectMany:aClass-where:aDictionary-options:someOptions collect:[:each | self-retrieveObjectOf:aClass json:each] as:存储库集合类 选择:[:each | each isKindOf:aClass] VoMongorPositoryResolver>>基本CRAWSELECTMANY:aClass其中:字典选项:someOptions ^带数据库的自池:[:db| 自收集地址:aClass inDatabase:db 选择:词典 选项:someOptions] MongoCollection>>选择:词典选项:someOptions ^自查询:[:查询| 查询 其中:词典; limit:someOptions位于:limit'ifAbsent:nil; offset:someOptions位于:offset'ifAbsent:nil; 字段:某些选项位于:'fields'ifAbsent:nil]

这就解决了问题。 该消息以以下方式发送:

options := { 'fields' -> { 'personId' -> 1 } asDictionary } asDictionary.
^ self selectMany: [ :each |
    (each at: 'name') = 'Max' ]
    options: options
还可以将限制和偏移量添加到选项目录中。 由于我有很多字段的对象,因此仅获取其中几个字段时的性能已从48000毫秒更改为229毫秒 我已经创建了一个带有扩展名的包