为mongoid创建模型(RAILS)

问题描述 投票:0回答:3

我需要将我的Rails应用程序连接到MongoDB,经过一些研究我发现了一个gem(mongoid)。我的疑问是,如何创建模型? MongoDB上的集合看起来像下面的示例:

{
    "_id": {
        "$oid": "56fbf7e577550f39a5aea04a"
    },
    "id_test": "225|1",
    "array_ex1": [],
    "array_ex2": [
        "obj_ex1": {
            "field_obj_1": "text1",
            "field_obj_2": "text2",
            "field_obj_3": "text3",
         }
     ],
    "obj_ex2": {
       "field1: "textex1",
       "field2: "textex2",
       "field3: "textex3",
    },
    "flg_test": true
}
ruby-on-rails ruby mongodb mongoid
3个回答
6
投票

这是一样的..

rails generate model model_name

此外,您可以指定orm:

rails g active_record:model model_name
rails g mongoid:model model_name

模型文件看起来像这样:

class SomeModel
  include Mongoid::Document
  include Mongoid::Timestamps

  field :id_test, type: String
  field :array_ex1, type: Array
  field :array_ex2, type: Array
  field :obj_ex2
  field :flg_test, type: Boolean
end

1
投票

- >创建模型

rails generate model modelname

- >如果每条记录的数据字段不同(动态),则需要在模型中添加以下行

 include Mongoid::Attributes::Dynamic

- >创建记录

modelname.create({:field1 "valie1", :field2 "value2"})
modelname.create({:field1 "valie1"})

0
投票

您需要在app/models文件夹中创建模型。对于您的示例,它看起来像是:

app/models/singular_collection_name.rb

class SingularCollectionName
  include Mongoid::Document

  field :id_test, type: String
  field :array_ex1, type: Array
  field :array_ex2, type: Array
  field :obj_ex2, type: Hash
  field :flg_test, type: Boolean

end

其中SingularCollectionName是没有复数的集合名称。

你可以阅读更多here

© www.soinside.com 2019 - 2024. All rights reserved.