首页 > 解决方案 > Morphia 2.0 中的原生 MongoDB 查询

问题描述

有时您只想进行原生查询并让 Morphia 很好地映射它。我使它工作使用:

BasicDBObject parse = BasicDBObject.parse("{location:{$near:{$geometry:{type: 'Point', coordinates: ["+ location[0]+","+location[1]+"]}, $maxDistance: "+ maxDistance+"}}}");
Query<LabDataDTO> query = ((AdvancedDatastore) MorphiaHandler.getStore()).createQuery(LabDataDTO.class, new Document(parse));

...但它不是很漂亮,使用强制转换并使用不推荐使用的方法 - 你如何在 Morphia 2.0 中很好地做到这一点?

标签: mongodbmorphia

解决方案


老实说,这是我在从 1.x 到 2.x 的过渡中明确取消(至少在实现时)的一个功能,因为它暴露/使用了某些内部实现细节,如果我在这些领域进行任何更改,它会破坏人们。现在我可以通过一种Datastore#find(Class type, Document query)方法安全地重新引入它,因为我有一些保护措施来记录什么是安全的,什么是不安全的。如果这是您真正需要的东西,请提出问题,我们可以努力寻找解决方案。


推荐阅读