case class Table[V](name: String)(implicit evidence$1: DynamoFormat[V]) extends Product with Serializable
Represents a DynamoDB table that operations can be performed against
- Alphabetic
- By Inheritance
- Table
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new Table(name: String)(implicit arg0: DynamoFormat[V])
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()
- def consistently: ConsistentlyReadTable[V]
Perform strongly consistent (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html) read operations against this table.
Perform strongly consistent (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html) read operations against this table. Note that there is no equivalent on table indexes as consistent reads from secondary indexes are not supported by DynamoDB
- def delete(key: UniqueKey[_]): ScanamoOps[Unit]
- def deleteAll(items: UniqueKeys[_]): ScanamoOps[Unit]
Deletes multiple items by a unique key
- def deleteAndReturn(ret: DeleteReturn)(key: UniqueKey[_]): ScanamoOps[Option[Either[DynamoReadError, V]]]
- def descending: TableWithOptions[V]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def filter[C](condition: C)(implicit arg0: ConditionExpression[C]): TableWithOptions[V]
Filter the results of a Scan or Query
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def from(exclusiveStartKey: DynamoObject): TableWithOptions[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 table
- returns
A new Table which when queried will return items after the provided exclusive start key
import org.scanamo._ import org.scanamo.syntax._ val table: Table[_] = ??? val exclusiveStartKey = DynamoObject( Map( "myPartitionKeyName" -> myPartitionKeyValue.asDynamoValue, "mySortKeyName" -> mySortKeyValue.asDynamoValue ) ) val tableStartingFromExclusiveStartKey: Table[_] = table.from(exclusiveStartKey)
Example: - def from[K](key: UniqueKey[K])(implicit arg0: UniqueKeyCondition[K]): TableWithOptions[V]
Primes a search request with a key to start from:
- def get(key: UniqueKey[_]): ScanamoOps[Option[Either[DynamoReadError, V]]]
- def getAll(keys: UniqueKeys[_]): ScanamoOps[Set[Either[DynamoReadError, V]]]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def index(indexName: String): SecondaryIndex[V]
A secondary index on the table which can be scanned, or queried against
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def limit(n: Int): TableWithOptions[V]
Query or scan a table, limiting the number of items evaluated by Dynamo
- val name: String
- 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()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def put(v: V): ScanamoOps[Unit]
- def putAll(vs: Set[V]): ScanamoOps[Unit]
- def putAndReturn(ret: PutReturn)(v: V): ScanamoOps[Option[Either[DynamoReadError, V]]]
- def query(query: Query[_]): ScanamoOps[List[Either[DynamoReadError, V]]]
Query a table based on the hash key and optionally the range key
- 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
- 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.
- def queryRaw(query: Query[_]): ScanamoOps[QueryResponse]
Queries the table and returns the raw DynamoDB result.
Queries the table and returns the raw DynamoDB result. Sometimes, one might want to access metadata returned in the
QueryResponseobject, such as the last evaluated key for example.Table#queryonly returns a list of results, so there is no place for putting that information: this is wherequery0comes in handy! - def scan(): ScanamoOps[List[Either[DynamoReadError, V]]]
Scans all elements of a table
- 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
- 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.
- def scanRaw: ScanamoOps[ScanResponse]
Scans the table and returns the raw DynamoDB result.
Scans the table and returns the raw DynamoDB result. Sometimes, one might want to access metadata returned in the
ScanResponseobject, such as the last evaluated key for example.Table#scanonly returns a list of results, so there is no place for putting that information: this is wherescan0comes in handy!A particular use case is when one wants to paginate through result sets, say:
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def transactDeleteAll(vs: List[UniqueKey[_]]): ScanamoOps[TransactWriteItemsResponse]
- def transactPutAll(vs: List[V]): ScanamoOps[TransactWriteItemsResponse]
- def transactUpdateAll(vs: List[(UniqueKey[_], UpdateExpression)]): ScanamoOps[TransactWriteItemsResponse]
- def update(key: UniqueKey[_], expression: UpdateExpression): ScanamoOps[Either[DynamoReadError, V]]
Updates an attribute that is not part of the key and returns the updated row
- 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()
- def when[T](condition: T)(implicit arg0: ConditionExpression[T]): ConditionalOperation[V, T]
Performs the chained operation,
putif the condition is met
Deprecated Value Members
- def query0(query: Query[_]): ScanamoOps[QueryResponse]
- Annotations
- @deprecated
- Deprecated
(Since version 1.0) use
queryRaw
- def scan0: ScanamoOps[ScanResponse]
- Annotations
- @deprecated
- Deprecated
(Since version 1.0) use
scanRaw