Mongodb Grails2.4RC1/Mongo DB插件/Mongo DB 2.6/Authenticated

Mongodb Grails2.4RC1/Mongo DB插件/Mongo DB 2.6/Authenticated,mongodb,grails,authorization,Mongodb,Grails,Authorization,如何在-auth模式下使用Grails 2.4RC1/Mongo GORM插件和Mongo DB 2.6为我的域类创建/或确保索引存在 让我们假设: 1在我的Mongo实例中,我有一个使用适当角色标识的有效用户。 2我能够使用DataSource.groovy中的connectionString配置对该用户进行身份验证 3我在Person域类的静态映射{lname index:true}中定义 我将在启动时收到一个错误,表明我的用户没有运行createIndex命令的权限。当mongo没有在-a

如何在-auth模式下使用Grails 2.4RC1/Mongo GORM插件和Mongo DB 2.6为我的域类创建/或确保索引存在

让我们假设: 1在我的Mongo实例中,我有一个使用适当角色标识的有效用户。 2我能够使用DataSource.groovy中的connectionString配置对该用户进行身份验证 3我在Person域类的静态映射{lname index:true}中定义

我将在启动时收到一个错误,表明我的用户没有运行createIndex命令的权限。当mongo没有在-auth模式下运行时,我没有得到这个错误


我有一个解决方法,我会附加到这个问题上,但我认为它会像文档中所描述的那样工作。

您可以处理mongo实例,并使用低级api管理索引,如下所示:

在Bootstrap.groovy中,您可以添加:

def mongo

def init = { servletContext ->
   def db = mongo.getDB("yourdbname")
   db.person.ensureIndex([lname: 1, fname:1])
}

<>不是我认为最好的解决办法,但似乎可行。

我为这个问题增加了一个JIRA问题: