Mongo ruby setFeatureCompatibilityVersion

Mongo ruby setFeatureCompatibilityVersion

在带有 mongo ruby 驱动程序的 rails 应用程序 (5.2) 中使用 mongo (3.4)。 我需要对集​​合使用排序规则以允许不区分大小写的文本搜索,为此我收到了一条警告,提示我需要将 setFeatureCompatibilityVersion 添加到 3.4。

client  = Mongo::Client.new(['127.0.0.1:27017'], :database => 'leads')
db = client.database
db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
collection_name = "#{user.id.to_s}"
@collection = client[collection_name.to_sym, { "collation" => { "locale" => "en_US" } }]
...

但是正在为 #)`

获取 NoMethodError (undefined methodadminCommand'

在这种情况下我没有使用 mongoid,因此使用 mongoid 的模型是不可能的。

我该如何解决这个问题?

更新::

刚刚起作用的是我使用 mongo 访问了 mongo shell 并输入了

db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
{ "ok" : 1 }

这个命令只应该直接应用于 shell 中的数据库吗?

Ruby 驱动程序中 运行 任意命令的方法是 Database#command:

https://api.mongodb.com/ruby/current/Mongo/Database.html#command-instance_method

文档最近已移至 https://docs.mongodb.com/ruby-driver/current/

您正在尝试做的事情,可以通过 ruby 驱动程序使用 command 方法实现:

db.command({ setFeatureCompatibilityVersion: '3.4' })