将 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