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

How to add index in a rails app with mongodb/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

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

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