sql >> Database >  >> NoSQL >> MongoDB

Dynamisch index maken met mongoid

Zeggen Model.index(:field => -1) , min of meer, registreert gewoon het bestaan ​​van de index met Model , het maakt niet echt een index. U zoekt naar create_indexes :

Dus je zou willen zeggen:

Model.index(field: -1)
Model.create_indexes

Je kunt ze ook rechtstreeks via Moped maken door create op de indexen van de collectie :

Mongoid::Sessions.default[:models].indexes.create(field: -1)
Model.collection.indexes.create(field: 1)
# or in newer versions:
Model.collection.indexes.create_one(field: 1)

Mongoid::Sessies is hernoemd naar Mongoid::Clients in nieuwere versies, dus je moet misschien zeggen:

Mongoid::Clients.default[:models].indexes.create(field: 1)
Model.collection.indexes.create(field: 1)
# or in even newer versions:
Model.collection.indexes.create_one(field: 1)

Met dank aan js_ en mltsy voor het noteren van deze wijzigingen.




  1. Kan string van BsonType ObjectId niet deserialiseren in MongoDb C#

  2. MySQL, MongoDB en PostgreSQL beheren met ChatOps van Slack

  3. MongoDB $uitgeschakeld Als aan de voorwaarde is voldaan

  4. Waarom reageert MongoDB niet tijdens een laadtest?