如何通过指定集合名称来使用EnsureIndex和AdvancedDatastore?

时间:2013-02-22 09:47:51

标签: mongodb morphia

在morphia中,您可以使用@Index注释为@Entity类创建自动索引。我试图通过指定集合名称来创建这些索引,但无法找到方法来执行此操作。使用AdvancedDatastore可以将Entity保存到任何所需的集合中,但是可以确保指定集合上的索引而不是Entity的默认集合。

advancedDatastore.ensureIndexes(Entity.class); // This will create indexes on the mapped Entities.

我正在寻找一种方法来执行以下操作,但我没有看到任何类似于下面的方法,是否有解决方法来实现此目的:

advancedDatstore.ensureIndexes("exampleCollection", Entity.class); //create indexes of Entity.class for the exampleCollection. 

1 个答案:

答案 0 :(得分:0)

是的,您可以扩展AdvancedDatastore接口和DatastoreImpl具体类,以使用额外参数添加ensureIndex*方法。我们在组织中这样做并且有效。

还有一个待处理的请求将此功能直接添加到Morphia:https://github.com/mongodb/morphia/pull/541。如果您愿意建立自己的Morphia jar,可以使用那里列出的补丁。