0

我有一个带有 GORM 6.1.8 的 Grails 3.3.2 应用程序,并且正在使用 mongodDB grails 插件 6.1.4。

尝试连接 3.4 MongoDB 实例时,应用程序在启动时出错:

引起:com.mongodb.MongoCommandException:命令失败,错误 67:'v:2 索引键模式中的值不能是 bool 类型。只允许数字 > 0、数字 < 0 和字符串。在服务器 localhost:27017 上。完整的响应是 { "ok" : 0.0, "errmsg" : "v:2 索引键模式中的值不能是 bool 类型。只允许数字 > 0、数字 < 0 和字符串。", "code" : 67、“代号”:“CannotCreateIndex”}

使用调试器,我可以找到索引创建失败的域:

class MyClass{
    Long field1
    String field2
    Long index

    static mapWith = "mongo"

    static mapping = {
        database "databasename"
    }

    static constraints = {
        field1 nullable: true
        field2 nullable: true
    }
}

它嵌入在另一个域中。

这个域类有什么问题?我还尝试连接到 3.6 和 4.0 MonogoDB 实例,但出现同样的错误。

4

1 回答 1

0

凭经验发现域类的 Long 'index' 属性会导致错误。从域中删除属性可以解决此问题。

于 2019-07-03T09:54:40.797 回答