将 Rails 应用程序连接到现有的 Mongodb 数据库
Connecting Rails app to existing Mongodb database
我有一个 mongodb 数据库,其中一个集合包含 400 多个基本数据条目。
我正在使用 Rails 和 mongoid gem 到 link 两者一起但是当我在 rails 控制台中查询我的模型时没有找到条目.
QuizQuestion.first
没有结果
我的模型:
class QuizQuestion
include Mongoid::Document
field :question, type: String
field :correctAnswer, type: String
field :wrongAnswers, type: Array, default: []
field :category, type: String
end
我已经配置了mongoid.yml配置文件指向数据库的地址。
有谁知道如何正确执行此操作或我哪里出错了?
看不到结果的原因:
1) 数据库配置不正确,您指向同一 mongodb 实例上的不同数据库
2) class 名称与 mongo 中 collection 的名称不匹配。打开 console/terminal 并输入:
mongo
然后输入:
show dbs
这是您在第一部分中需要的数据库的名称
use x
其中 x 是数据库名称
show collections
这将列出 collection 的名字。
获得 collection 的名字后,您可以将其添加到您的模型中:
store_in collection: "name_of_collection_as_in_mongo"
因此,如果您的 collection 的名称是 quiz_question,如 mongo 客户端所示,您可以在您的模型上执行此操作:
class QuizQuestion
include Mongoid::Document
store_in collection: "quiz_question"
field :question, type: String
field :correctAnswer, type: String
field :wrongAnswers, type: Array, default: []
field :category, type: String
end
您看不到任何记录的原因(如果您指向正确的数据库名称)很可能是由于 mongoid 期望 class 名称等于复数 collection 名称所以 QuizQuestions == quiz_questions 在 mongo
内
我有一个 mongodb 数据库,其中一个集合包含 400 多个基本数据条目。
我正在使用 Rails 和 mongoid gem 到 link 两者一起但是当我在 rails 控制台中查询我的模型时没有找到条目.
QuizQuestion.first
没有结果
我的模型:
class QuizQuestion
include Mongoid::Document
field :question, type: String
field :correctAnswer, type: String
field :wrongAnswers, type: Array, default: []
field :category, type: String
end
我已经配置了mongoid.yml配置文件指向数据库的地址。
有谁知道如何正确执行此操作或我哪里出错了?
看不到结果的原因:
1) 数据库配置不正确,您指向同一 mongodb 实例上的不同数据库
2) class 名称与 mongo 中 collection 的名称不匹配。打开 console/terminal 并输入:
mongo
然后输入:
show dbs
这是您在第一部分中需要的数据库的名称
use x
其中 x 是数据库名称
show collections
这将列出 collection 的名字。
获得 collection 的名字后,您可以将其添加到您的模型中:
store_in collection: "name_of_collection_as_in_mongo"
因此,如果您的 collection 的名称是 quiz_question,如 mongo 客户端所示,您可以在您的模型上执行此操作:
class QuizQuestion
include Mongoid::Document
store_in collection: "quiz_question"
field :question, type: String
field :correctAnswer, type: String
field :wrongAnswers, type: Array, default: []
field :category, type: String
end
您看不到任何记录的原因(如果您指向正确的数据库名称)很可能是由于 mongoid 期望 class 名称等于复数 collection 名称所以 QuizQuestions == quiz_questions 在 mongo
内