sealed abstract class SecondaryIndex[V] extends AnyRef
- Alphabetic
- By Inheritance
- SecondaryIndex
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def descending: SecondaryIndex[V]
- abstract def filter[C](condition: C)(implicit arg0: ConditionExpression[C]): SecondaryIndex[V]
Filter the results of
scanorquerywithin DynamoDBFilter the results of
scanorquerywithin DynamoDBNote that rows filtered out still count towards your consumed capacity
- abstract def from(exclusiveStartKey: DynamoObject): SecondaryIndex[V]
Primes a search request with a key to start from:
Primes a search request with a key to start from:
- exclusiveStartKey
A DynamoObject containing attributes that match the partition key and sort key of the secondary index as well as the partition key of the table itself
- returns
A new SecondaryIndex which when queried will return items after the provided exclusive start key
import org.scanamo._ import org.scanamo.syntax._ val table: Table[_] = ??? val secondaryIndex: SecondaryIndex[_] = table.index("myIndex") val exclusiveStartKey = DynamoObject( Map( "myIndexPartitionKeyName" -> myIndexPartitionKeyValue.asDynamoValue, "myIndexSortKeyName" -> myIndexSortKeyValue.asDynamoValue, "myTablePartitionKeyName" -> myTablePartitionKeyValue.asDynamoValue ) ) val indexStartingFromExclusiveStartKey: SecondaryIndex[_] = secondaryIndex.from(exclusiveStartKey)
Example: - abstract def from[K](key: UniqueKey[K])(implicit arg0: UniqueKeyCondition[K]): SecondaryIndex[V]
- abstract def limit(n: Int): SecondaryIndex[V]
Query or scan an index, limiting the number of items evaluated by Dynamo
- abstract def query(query: Query[_]): ScanamoOps[List[Either[DynamoReadError, V]]]
Run a query against keys in a secondary index
- abstract def queryPaginatedM[M[_]](query: Query[_], pageSize: Int)(implicit arg0: Monad[M], arg1: MonoidK[M]): ScanamoOpsT[M, List[Either[DynamoReadError, V]]]
Performs a scan with the ability to introduce effects into the computation.
Performs a scan with the ability to introduce effects into the computation. This is useful for huge tables when you don't want to load the whole of it in memory, but scan it page by page, with a maximum of
pageSizeitems per page.- Note
DynamoDB will only ever return maximum 1MB of data per query, so
pageSizeis an upper bound.
- abstract def queryRaw(query: Query[_]): ScanamoOps[QueryResponse]
Queries the index and returns the raw DynamoDB result.
- abstract def scan(): ScanamoOps[List[Either[DynamoReadError, V]]]
Scan a secondary index
- abstract def scanPaginatedM[M[_]](pageSize: Int)(implicit arg0: Monad[M], arg1: MonoidK[M]): ScanamoOpsT[M, List[Either[DynamoReadError, V]]]
Performs a scan with the ability to introduce effects into the computation.
Performs a scan with the ability to introduce effects into the computation. This is useful for huge tables when you don't want to load the whole of it in memory, but scan it page by page, with a maximum of
pageSizeitems per page..- Note
DynamoDB will only ever return maximum 1MB of data per scan, so
pageSizeis an upper bound.
- abstract def scanRaw: ScanamoOps[ScanResponse]
Scans the index and returns the raw DynamoDB result.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def queryM[M[_]](query: Query[_])(implicit arg0: Monad[M], arg1: MonoidK[M]): ScanamoOpsT[M, List[Either[DynamoReadError, V]]]
Performs a query with the ability to introduce effects into the computation.
Performs a query with the ability to introduce effects into the computation. This is useful for huge tables when you don't want to load the whole of it in memory, but scan it page by page.
To control how many maximum items to load at once, use queryPaginatedM
- final def scanM[M[_]](implicit arg0: Monad[M], arg1: MonoidK[M]): ScanamoOpsT[M, List[Either[DynamoReadError, V]]]
Performs a scan with the ability to introduce effects into the computation.
Performs a scan with the ability to introduce effects into the computation. This is useful for huge tables when you don't want to load the whole of it in memory, but scan it page by page.
To control how many maximum items to load at once, use scanPaginatedM
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()