如何使用mongodb / mongoid在rails应用程序中添加索引

时间:2018-03-11 12:29:13

标签: ruby-on-rails mongoid

我是Mongodb的新手。我知道如何在Mysql中为活动记录rails应用程序添加索引。我正在努力学习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

1 个答案:

答案 0 :(得分: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