sql >> Databáze >  >> NoSQL >> MongoDB

Dynamicky vytvářejte index pomocí mongoidu

Řekněte Model.index(:field => -1) , víceméně pouze registruje existenci indexu pomocí Model , ve skutečnosti nevytváří index. Hledáte create_indexes :

Takže byste chtěli říct:

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

Můžete je také vytvořit přímo přes Moped voláním create na indexes sbírky :

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 byl přejmenován na Mongoid::Clients v novějších verzích, takže možná budete muset říct:

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)

Díky js_ a mltsy za zaznamenání těchto změn.




  1. Jak se připojit k externí instanci MongoDB v Meteoru?

  2. sudo service mongodb restart dává nerozpoznanou chybu služby v ubuntu 14.0.4

  3. Proč jedna instance Jedis není bezpečná pro vlákna?

  4. aktualizovat v mongodb pomocí dotazu $in?