我有一个带有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和字符串。在服务器上 本地主机:27017。完整的响应为{“ ok”:0.0,“ errmsg”:“值 在v:2中,索引键模式不能为bool类型。只有数字> 0, 数字<0,并且允许使用字符串。“,” code“:67,” codeName“: “ 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实例,但出现相同的错误。
答案 0 :(得分:0)
凭经验发现域类的Long'index'属性导致错误。从域中删除属性可以解决此问题。