将Rails应用程序连接到现有的Mongodb数据库

时间:2016-04-28 20:25:56

标签: ruby-on-rails mongodb mongoid

我有一个mongodb数据库,其中包含一个包含400多个基本数据条目的集合。

我正在使用Rails和mongoid gem将两者连接在一起但是当我在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 个答案:

答案 0 :(得分:1)

您看不到结果的原因:

1)数据库配置不正确,您指向同一个mongodb实例上的不同数据库

2)类名与mongo中的集合名称不匹配。打开控制台/终端并输入:

mongo

然后输入:

show dbs

这是第一部分所需的dbs名称

use x

其中x是数据库名称

show collections

这将列出集合的名称。

获得馆藏名称后,可以将其添加到模型中:

store_in collection: "name_of_collection_as_in_mongo"

因此,如果您的收藏品名称为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期望类名等于复数集合名称,因此在mongo中的QuizQuestions == quiz_questions