MongoDB 无法使用 DataGrip 为文本索引设置 default_language

问题描述

我正在为名为 test 的 mongodb 集合中的多个字段创建文本索引,但是当我在 Datagrip 中运行此脚本时

db.test.createIndex(
{"field1.subfield1": "text","field1.subfield2": "text"},{name : "my_test_index",default_language: "italian",weights:{"field1.subfield1": 2}})

抛出这个错误

com.mongodb.mongosh.result.CommandException: unrecognized index model field: default_language

我也尝试在 mongo shell 中从 .js 文件运行这个脚本,但没有成功。

在其他测试之后,我注意到文本索引的所有特殊选项(default_languagelanguage_overrideweights 等)存在一些问题。

MongoDB 实例信息

MongoDB shell version v4.4.3
  Build Info: {
    "version": "4.4.3","gitVersion": "913d6b62acfbb344dde1b116f4161360acd8fd13","openSSLVersion": "OpenSSL 1.1.1i 8 Dec 2020","modules": [],"allocator": "tcmalloc","environment": {
    "distmod": "debian10","distarch": "x86_64","target_arch": "x86_64"
  }
}

问题出在哪里?有什么想法吗?

解决方法

它没有在 Java 驱动程序中实现

我为它创建了一个问题 https://youtrack.jetbrains.com/issue/DBE-12537

当我们发布带有修复程序的驱动程序时,我会在这里发表评论

,

问题可能出在 DataGrip 或其驱动程序中。

解决方案:使用 Compass 或 MongoDB Shell 可以工作

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...