sql >> Database teknologi >  >> NoSQL >> MongoDB

Opret dynamisk indeks med mongoid

Siger Model.index(:field => -1) , mere eller mindre, registrerer blot eksistensen af ​​indekset med Model , opretter det faktisk ikke et indeks. Du leder efter create_indexes :

Så du vil gerne sige:

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

Du kan også oprette dem direkte gennem knallert ved at kalde create på samlingens indexes :

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::Sessions er blevet omdøbt til Mongoid::Clients i nyere versioner, så du skal muligvis sige:

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)

Tak til js_ og mltsy for at bemærke disse ændringer.




  1. Håndtering af Mongodb-forbindelser i Java som objektorienteret

  2. Få de sidste dokumenter med et særskilt kriterium

  3. Fjern- og lokalgodkendelse mislykkes på Mongo DB 3.0.7 (installeret på Amazon EC2)

  4. Er der nogen måde at arbejde med sessioner uden at låse på ASP.Net MVC-webstedet?