Indexes manager at database level.
Attributes
- Companion:
- object
- Graph
- Supertypes
- class Objecttrait Matchableclass Any
Members list
Type members
Value members
Abstract methods
Creates the given index.
Creates the given index.
import scala.concurrent.{ ExecutionContext, Future }
import reactivemongo.api.DB
import reactivemongo.api.indexes.NSIndex
def createIndexes(
db: DB, 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.
Attributes
- nsIndex
the index to create
Drops the specified index on the given collection.
Drops the specified index on the given collection.
import scala.concurrent.{ ExecutionContext, Future }
import reactivemongo.api.DB
def dropIndex(db: DB, name: String)(
implicit ec: ExecutionContext): Future[Int] =
db.indexesManager.drop("myColl", name)
Attributes
- collectionName
the collection name
- indexName
the name of the index to be dropped
- Returns:
The number of indexes that were dropped.
Drops all the indexes on the specified collection.
Drops all the indexes on the specified collection.
import scala.concurrent.{ ExecutionContext, Future }
import reactivemongo.api.DB
def dropAllIndexes(db: DB)(
implicit ec: ExecutionContext): Future[Int] =
db.indexesManager.dropAll("myColl")
Attributes
- collectionName
the collection name
- Returns:
The number of indexes that were dropped.
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.DB
import reactivemongo.api.indexes.NSIndex
def ensureIndexes(
db: DB, 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.
Attributes
- nsIndex
the index to create
- Returns:
true if the index was created, false if it already exists.
Lists all the index on this database.
Lists all the index on this database.
import scala.concurrent.{ ExecutionContext, Future }
import reactivemongo.api.DB
import reactivemongo.api.indexes.NSIndex
def listIndexes(db: DB)(
implicit ec: ExecutionContext): Future[List[String]] =
db.indexesManager.list().map(_.flatMap { (ni: NSIndex) =>
ni.index.name.toList
})
Attributes
Returns a manager for the specified collection.
Returns a manager for the specified collection.
import scala.concurrent.{ ExecutionContext, Future }
import reactivemongo.api.DB
def countCollIndexes(db: DB, collName: String)(
implicit ec: ExecutionContext): Future[Int] =
db.indexesManager.onCollection(collName).list().map(_.size)
Attributes
- collectionName
the collection name
Concrete methods
Drops the specified index.
Drops the specified index.
import scala.concurrent.{ ExecutionContext, Future }
import reactivemongo.api.DB
import reactivemongo.api.indexes.NSIndex
def dropIndex(db: DB, idx: NSIndex.Default)(
implicit ec: ExecutionContext): Future[Int] =
db.indexesManager.drop(idx)
Attributes
- Returns:
The number of indexes that were dropped.