the subject database
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])( 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.
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.DefaultDB def dropIndex(db: DefaultDB, name: String)( implicit ec: ExecutionContext): Future[Int] = db.indexesManager.drop("myColl", name)
the collection name
the name of the index to be dropped
The number of indexes that were dropped.
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)( implicit ec: ExecutionContext): Future[Int] = db.indexesManager.drop(idx)
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.DefaultDB def dropAllIndexes(db: DefaultDB)( implicit ec: ExecutionContext): Future[Int] = db.indexesManager.dropAll("myColl")
the collection name
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.DefaultDB import reactivemongo.api.indexes.NSIndex def ensureIndexes( db: DefaultDB, is: Seq[NSIndex])( 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.
the index to create
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.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 })
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)
the collection name
A helper class to manage the indexes on a Mongo 3.x database.