sql >> Databasteknik >  >> NoSQL >> MongoDB

Skapa index dynamiskt med mongoid

Säger Model.index(:field => -1) , mer eller mindre, registrerar bara existensen av indexet med Model , det skapar faktiskt inte ett index. Du letar efter create_indexes :

Så du skulle vilja säga:

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

Du kan också skapa dem direkt via Moped genom att ringa 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 har bytt namn till Mongoid::Clients i nyare versioner så du kan behöva säga:

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)

Tack vare js_ och mltsy för att du noterade dessa ändringar.




  1. Hur får man, uppdaterar alla nycklar och dess värden från redis-databasen i c#?

  2. Hur infogar man ett dokument i mongodb med mongoose och får det genererade ID:t?

  3. mgo - frågeprestanda verkar konsekvent långsam (500-650ms)

  4. Mongodb Aggregation Framework:Använder $group index?