在mongodb中创建相关表

时间:2013-12-13 13:38:54

标签: ruby-on-rails ruby mongodb database-design ruby-on-rails-3.2

我正在使用MongoDB在Ruby on Rails中开发一个简单的论坛应用程序。

应该有这些基本的东西:

Topics
-Author name
-Topic name
-Topic text (content)

Comments
-Name of commentator 
-Comment text

一个人应该能够创建/编辑/删除TopicsComments

我对如何处理MongoDB中的表结构感到困惑。 我的意思是,如果我要使用MySQL,这就是我的想法:

主题:

ID - autoincrement int(10)
author - varchar(40)
topic_text - text

评论:

ID - autoincrement integer
commentator_name - varchar(40)
comment_text - text
for_topic_id - int(10) //the Topic on which this comment is

我如何在MongoDB中做到这一点?

1 个答案:

答案 0 :(得分:0)

mongodb中不再存在表格。当你来到mongodb时,它就是所有的收藏品。每个集合都是一个文档集合(Mysql中的行)。您可以动态创建任何您想要的字段。您已直接在模型中编写字段而不是迁移。例如,在您的情况下:

class Topic
   include Mongoid::Document

   field :author, type: String
   field :topic_text,  type: String
end

当涉及到id时,它会以增量方式为每个文档生成24位数的唯一BSON ID

注意:我使用mongoid作为ORM与我的rails应用程序中的mongoDB交谈。