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 method
adminCommand'
在这种情况下我没有使用 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' })
在带有 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 method
adminCommand'
在这种情况下我没有使用 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' })