我正在嘗試將 Rails 4.2 應用程式中的 Mongoid 從 4.x 升級到 5.x (5.4.1) 以連接到 MongoDB 2.6。
我更新了mongoid.yml檔案以匹配 5.x 的差異:
development:
clients:
default:
database: my_db
hosts:
- localhost:27017
options:
但是現在當我嘗試運行查詢時,例如User.count我收到以下錯誤:
Mongo::Error::UnsupportedFeatures (Server at (localhost:27017) reports wire version (2), but this version of the Ruby driver requires at least (6).)
檔案說 Mongoid 5.x 與 MongoDB 2.6 兼容,那么為什么會出現錯誤?
我有另一個使用 Mongoid 7.x 并可以很好地連接到同一個資料庫的 rails 應用程式(6.x)。
注意:紅寶石 2.6
作業系統:MacOS
uj5u.com熱心網友回復:
MongoDB 檔案在這里有點混亂。
您發布的鏈接是指 mongoid 和 ruby?? mongodb驅動程式之間的兼容性。
還有另一個頁面,其中包含一個矩陣,表示 ruby?? 驅動程式和 mongoDB 服務器的兼容性。
uj5u.com熱心網友回復:
所以@javiyu 的回答為我指明了正確的方向,MongoDB 的檔案確實令人困惑,而 Mongoid 本身支持 MongoDB 2.6,ruby MongoDB 驅動程式從版本 2.16 中洗掉了對 MongoDB 2.6 的支持(已棄用并完全從 2.17 中洗掉,這是我的版本運行),因此將版本固定到 2.15 就可以了:
#last version that supports mongodb 2.6
gem 'mongo', "~> 2.15.0"
#last version to support rails 4.2, above that requires at least rails 5
gem 'mongoid', "~> 5.4.0"
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/416950.html
標籤:
上一篇:在活動記錄結果陣列中查找
下一篇:在RSpec中,運行補丁或放置測驗將導致ActionController::UrlGenerationError:Noroutematches錯誤
