问题描述
我正在为名为 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_language、language_override、weights 等)存在一些问题。
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 可以工作