【问题标题】:How to add index in a rails app with mongodb/mongoid如何使用 mongodb/mongoid 在 Rails 应用程序中添加索引
【发布时间】:2018-03-11 12:29:13
【问题描述】:

我是 Mongodb 的新手。我知道如何在 Mysql 中为活动的记录轨道应用程序添加索引。我只是想学习 mongo 的方式来做到这一点。

我正在生成一个包含以下字段的用户模型。

rails g model User provider:string uid:string name:string location:string image_url:string url:string

在 Mysql 中,我需要添加到迁移文件的索引如下

443343_create_users.rb

t.string :provider, null: false
t.string :uid, null: false
add_index :users, :provider
add_index :users, :uid
add_index :users, [:provider, :uid], unique: true

如何在使用 mongoid 创建的用户模型中实现相同的目标

class User
  include Mongoid::Document
  field :provider, type: String
  field :uid, type: String
  field :name, type: String
  field :location, type: String
  field :image_url, type: String
  field :url, type: String
end

【问题讨论】:

    标签: ruby-on-rails mongoid


    【解决方案1】:

    使用 mongoid,您可以在模型类中定义索引。

    class User
      include Mongoid::Document
    
      field :provider, type: String
      field :uid, type: String
    
      index({ provider: 1, uid: 1 }, { unique: true})
    end
    

    然后您可以运行此命令来创建所有缺失的索引(存在于模型中但不存在于数据库中)

    rake db:mongoid:create_indexes
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-03
      • 1970-01-01
      • 2023-03-26
      • 2018-03-12
      • 2015-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多