我有一个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配置文件配置为指向数据库的地址。
有谁知道如何正确地做到这一点或我出错的地方?
答案 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