代码之家  ›  专栏  ›  技术社区  ›  user3576036

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

  •  1
  • user3576036  · 技术社区  · 8 年前

    我是Mongodb的新手。我知道如何在Mysql中为active record rails应用程序添加索引。我正在努力学习mongo的方法。

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

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

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

    443343\u create\u用户。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 回复  |  直到 8 年前
        1
  •  3
  •   Sergio Tulentsev    8 年前

    使用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