Packages

sealed trait IndexesManager extends AnyRef

Indexes manager at database level.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. IndexesManager
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. final type NSIndex = indexes.NSIndex { type Pack = IndexesManager.this.Pack }
  2. abstract type Pack <: SerializationPack with Singleton

Abstract Value Members

  1. abstract def create(nsIndex: NSIndex): Future[WriteResult]

    Creates the given index.

    Creates the given index.

    import scala.concurrent.{ ExecutionContext, Future }
    
    import reactivemongo.api.DefaultDB
    import reactivemongo.api.indexes.NSIndex
    
    def createIndexes(
      db: DefaultDB, is: Seq[NSIndex.Default])(
      implicit ec: ExecutionContext): Future[Unit] =
      Future.sequence(
        is.map(idx => db.indexesManager.create(idx))).map(_ => {})

    _Warning_: given the options you choose, and the data to index, it can be a long and blocking operation on the database. You should really consider reading http://www.mongodb.org/display/DOCS/Indexes before doing this, especially in production.

    nsIndex

    the index to create

  2. abstract def drop(collectionName: String, indexName: String): Future[Int]

    Drops the specified index on the given collection.

    Drops the specified index on the given collection.

    import scala.concurrent.{ ExecutionContext, Future }
    import reactivemongo.api.DefaultDB
    
    def dropIndex(db: DefaultDB, name: String)(
      implicit ec: ExecutionContext): Future[Int] =
      db.indexesManager.drop("myColl", name)
    collectionName

    the collection name

    indexName

    the name of the index to be dropped

    returns

    The number of indexes that were dropped.

  3. abstract def dropAll(collectionName: String): Future[Int]

    Drops all the indexes on the specified collection.

    Drops all the indexes on the specified collection.

    import scala.concurrent.{ ExecutionContext, Future }
    import reactivemongo.api.DefaultDB
    
    def dropAllIndexes(db: DefaultDB)(
      implicit ec: ExecutionContext): Future[Int] =
      db.indexesManager.dropAll("myColl")
    collectionName

    the collection name

    returns

    The number of indexes that were dropped.

  4. abstract def ensure(nsIndex: NSIndex): Future[Boolean]

    Creates the given index only if it does not exist on this database.

    Creates the given index only if it does not exist on this database.

    The following rules are used to check the matching index: - if nsIndex.isDefined, it checks using the index name, - otherwise it checks using the key.

    import scala.concurrent.{ ExecutionContext, Future }
    
    import reactivemongo.api.DefaultDB
    import reactivemongo.api.indexes.NSIndex
    
    def ensureIndexes(
      db: DefaultDB, is: Seq[NSIndex.Default])(
      implicit ec: ExecutionContext): Future[Unit] =
      Future.sequence(
        is.map(idx => db.indexesManager.ensure(idx))).map(_ => {})

    _Warning_: given the options you choose, and the data to index, it can be a long and blocking operation on the database. You should really consider reading http://www.mongodb.org/display/DOCS/Indexes before doing this, especially in production.

    nsIndex

    the index to create

    returns

    true if the index was created, false if it already exists.

  5. abstract def list(): Future[List[NSIndex]]

    Lists all the index on this database.

    Lists all the index on this database.

    import scala.concurrent.{ ExecutionContext, Future }
    
    import reactivemongo.api.DefaultDB
    import reactivemongo.api.indexes.NSIndex
    
    def listIndexes(db: DefaultDB)(
      implicit ec: ExecutionContext): Future[List[String]] =
      db.indexesManager.list().map(_.flatMap { ni: NSIndex =>
        ni.index.name.toList
      })
  6. abstract def onCollection(collectionName: String): Aux[Pack]

    Returns a manager for the specified collection.

    Returns a manager for the specified collection.

    import scala.concurrent.{ ExecutionContext, Future }
    import reactivemongo.api.DefaultDB
    
    def countCollIndexes(db: DefaultDB, collName: String)(
      implicit ec: ExecutionContext): Future[Int] =
      db.indexesManager.onCollection(collName).list().map(_.size)
    collectionName

    the collection name

Concrete Value Members

  1. def drop(nsIndex: NSIndex): Future[Int]

    Drops the specified index.

    Drops the specified index.

    import scala.concurrent.{ ExecutionContext, Future }
    
    import reactivemongo.api.DefaultDB
    import reactivemongo.api.indexes.NSIndex
    
    def dropIndex(db: DefaultDB, idx: NSIndex.Default)(
      implicit ec: ExecutionContext): Future[Int] =
      db.indexesManager.drop(idx)
    returns

    The number of indexes that were dropped.