11package com .sfxcode .nosql .mongo .operation
22
33import com .sfxcode .nosql .mongo ._
4- import com .sfxcode .nosql .mongo .bson .BsonConverter ._
54
5+ import org .mongodb .scala .model .Sorts ._
6+
7+ import com .sfxcode .nosql .mongo .bson .BsonConverter ._
68import com .typesafe .scalalogging .LazyLogging
79import org .bson .BsonValue
810import org .mongodb .scala .bson .conversions .Bson
9- import org .mongodb .scala .{ Completed , DistinctObservable , Document , MongoCollection , Observable , Observer }
11+ import org .mongodb .scala .model .IndexOptions
12+ import org .mongodb .scala .{ Completed , DistinctObservable , Document , MongoCollection , Observable , Observer , SingleObservable }
1013
1114import scala .reflect .ClassTag
1215
@@ -30,6 +33,27 @@ abstract class Base[A]()(implicit ct: ClassTag[A]) extends LazyLogging {
3033
3134 def dropResult (): Completed = drop().headResult()
3235
36+ def createIndexForField (field : String , sortAscending : Boolean = true ): SingleObservable [String ] = {
37+ if (sortAscending)
38+ createIndex(ascending(field))
39+ else
40+ createIndex(descending(field))
41+ }
42+
43+ def createIndexForFieldResult (field : String , sortAscending : Boolean = true ): String = createIndexForField(field, sortAscending)
44+
45+ def createIndex (key : Bson , options : IndexOptions = IndexOptions ()): SingleObservable [String ] = coll.createIndex(key, options)
46+
47+ def createsIndexResult (key : Bson , options : IndexOptions = IndexOptions ()): String = createIndex(key, options)
48+
49+ def dropIndexForName (name : String ): SingleObservable [Completed ] = coll.dropIndex(name)
50+
51+ def dropIndexForNameResult (name : String ): Completed = dropIndexForName(name)
52+
53+ def dropIndex (keys : Bson ): SingleObservable [Completed ] = coll.dropIndex(keys)
54+
55+ def dropIndexResult (keys : Bson ): Completed = dropIndex(keys)
56+
3357}
3458
3559class SimpleCompletedObserver [T ] extends Observer [T ] with LazyLogging {
0 commit comments