class AsyncCollection extends AnyRef
Provides asynchronous access to all collection APIs, based around Scala Future
s. This is the main entry-point
for key-value (KV) operations.
If synchronous, blocking access is needed, we recommend looking at the Collection. If a more advanced async API based around reactive programming is desired, then check out the ReactiveCollection.
- Since
1.0.0
- Alphabetic
- By Inheritance
- AsyncCollection
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new AsyncCollection(name: String, bucketName: String, scopeName: String, couchbaseOps: CoreCouchbaseOps, environment: ClusterEnvironment)
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
- val binary: AsyncBinaryCollection
- val bucketName: String
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def core: Core
- val couchbaseOps: CoreCouchbaseOps
- val environment: ClusterEnvironment
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def exists(id: String, options: ExistsOptions): Future[ExistsResult]
Checks if a document exists.
Checks if a document exists.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def exists(id: String, timeout: Duration = kvReadTimeout): Future[ExistsResult]
Checks if a document exists.
Checks if a document exists.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def get(id: String, options: GetOptions): Future[GetResult]
Fetches a full document from this collection.
Fetches a full document from this collection.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def get(id: String, timeout: Duration = kvReadTimeout): Future[GetResult]
Fetches a full document from this collection.
Fetches a full document from this collection.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def getAllReplicas(id: String, options: GetAllReplicasOptions): Seq[Future[GetReplicaResult]]
Retrieves all available versions of the document.
Retrieves all available versions of the document.
Note that this will block the user's thread until all versions have been returned (or failed).
Users needing a true non-blocking streaming version should use the reactive version.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def getAllReplicas(id: String, timeout: Duration = kvReadTimeout): Seq[Future[GetReplicaResult]]
Retrieves all available versions of the document.
Retrieves all available versions of the document.
Note that this will block the user's thread until all versions have been returned (or failed).
Users needing a true non-blocking streaming version should use the reactive version.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def getAndLock(id: String, lockTime: Duration, options: GetAndLockOptions): Future[GetResult]
Fetches a full document from this collection, and simultaneously lock the document from writes.
Fetches a full document from this collection, and simultaneously lock the document from writes.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def getAndLock(id: String, lockTime: Duration, timeout: Duration = kvReadTimeout): Future[GetResult]
Fetches a full document from this collection, and simultaneously lock the document from writes.
Fetches a full document from this collection, and simultaneously lock the document from writes.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def getAndTouch(id: String, expiry: Duration, options: GetAndTouchOptions): Future[GetResult]
Fetches a full document from this collection, and simultaneously update the expiry value of the document.
Fetches a full document from this collection, and simultaneously update the expiry value of the document.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def getAndTouch(id: String, expiry: Duration, timeout: Duration = kvReadTimeout): Future[GetResult]
Fetches a full document from this collection, and simultaneously update the expiry value of the document.
Fetches a full document from this collection, and simultaneously update the expiry value of the document.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def getAnyReplica(id: String, options: GetAnyReplicaOptions): Future[GetReplicaResult]
Retrieves any available version of the document.
Retrieves any available version of the document.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def getAnyReplica(id: String, timeout: Duration = kvReadTimeout): Future[GetReplicaResult]
Retrieves any available version of the document.
Retrieves any available version of the document.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def insert[T](id: String, content: T, options: InsertOptions)(implicit serializer: JsonSerializer[T]): Future[MutationResult]
Inserts a full document into this collection, if it does not exist already.
Inserts a full document into this collection, if it does not exist already.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def insert[T](id: String, content: T, durability: Durability = Disabled, timeout: Duration = Duration.MinusInf)(implicit serializer: JsonSerializer[T]): Future[MutationResult]
Inserts a full document into this collection, if it does not exist already.
Inserts a full document into this collection, if it does not exist already.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def lookupIn(id: String, spec: Seq[LookupInSpec], options: LookupInOptions): Future[LookupInResult]
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def lookupIn(id: String, spec: Seq[LookupInSpec], timeout: Duration = kvReadTimeout): Future[LookupInResult]
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def lookupInAllReplicas(id: String, spec: Seq[LookupInSpec], options: LookupInAllReplicasOptions): Seq[Future[LookupInReplicaResult]]
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
This variant will read and return all replicas of the document.
Note that this will block the user's thread until all versions have been returned (or failed).
Users needing a true non-blocking streaming version should use the reactive version.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
.- Annotations
- @SinceCouchbase()
- def lookupInAllReplicas(id: String, spec: Seq[LookupInSpec], timeout: Duration = kvReadTimeout): Seq[Future[LookupInReplicaResult]]
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
This variant will read and return all replicas of the document.
Note that this will block the user's thread until all versions have been returned (or failed).
Users needing a true non-blocking streaming version should use the reactive version.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
.- Annotations
- @SinceCouchbase()
- def lookupInAnyReplica(id: String, spec: Seq[LookupInSpec], options: LookupInAnyReplicaOptions): Future[LookupInReplicaResult]
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
This variant will read all replicas of the document, and return the first one found.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
.- Annotations
- @SinceCouchbase()
- def lookupInAnyReplica(id: String, spec: Seq[LookupInSpec], timeout: Duration = kvReadTimeout): Future[LookupInReplicaResult]
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
SubDocument lookups allow retrieving parts of a JSON document directly, which may be more efficient than retrieving the entire document.
This variant will read all replicas of the document, and return the first one found.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
.- Annotations
- @SinceCouchbase()
- def mutateIn(id: String, spec: Seq[MutateInSpec], options: MutateInOptions): Future[MutateInResult]
Sub-Document mutations allow modifying parts of a JSON document directly, which can be more efficiently than fetching and modifying the full document.
Sub-Document mutations allow modifying parts of a JSON document directly, which can be more efficiently than fetching and modifying the full document.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def mutateIn(id: String, spec: Seq[MutateInSpec], cas: Long = 0, document: StoreSemantics = StoreSemantics.Replace, durability: Durability = Disabled, timeout: Duration = Duration.MinusInf): Future[MutateInResult]
Sub-Document mutations allow modifying parts of a JSON document directly, which can be more efficiently than fetching and modifying the full document.
Sub-Document mutations allow modifying parts of a JSON document directly, which can be more efficiently than fetching and modifying the full document.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - val name: String
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- lazy val queryIndexes: AsyncCollectionQueryIndexManager
Manage query indexes for this collection
- def remove(id: String, options: RemoveOptions): Future[MutationResult]
Removes a document from this collection, if it exists.
Removes a document from this collection, if it exists.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def remove(id: String, cas: Long = 0, durability: Durability = Disabled, timeout: Duration = Duration.MinusInf): Future[MutationResult]
Removes a document from this collection, if it exists.
Removes a document from this collection, if it exists.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def replace[T](id: String, content: T, options: ReplaceOptions)(implicit serializer: JsonSerializer[T]): Future[MutationResult]
Replaces the contents of a full document in this collection, if it already exists.
Replaces the contents of a full document in this collection, if it already exists.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def replace[T](id: String, content: T, cas: Long = 0, durability: Durability = Disabled, timeout: Duration = Duration.MinusInf)(implicit serializer: JsonSerializer[T]): Future[MutationResult]
Replaces the contents of a full document in this collection, if it already exists.
Replaces the contents of a full document in this collection, if it already exists.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def scan(scanType: ScanType, opts: ScanOptions): Future[Iterator[ScanResult]]
Initiates a KV range scan, which will return a non-blocking stream of KV documents.
Initiates a KV range scan, which will return a non-blocking stream of KV documents.
CAVEAT:This method is suitable for use cases that require relatively low concurrency and tolerate relatively high latency. If your application does many scans at once, or requires low latency results, we recommend using SQL++ (with a primary index on the collection) instead.
- Annotations
- @SinceCouchbase()
- def scan(scanType: ScanType): Future[Iterator[ScanResult]]
Initiates a KV range scan, which will return a non-blocking stream of KV documents.
Initiates a KV range scan, which will return a non-blocking stream of KV documents.
Uses default options.
CAVEAT:This method is suitable for use cases that require relatively low concurrency and tolerate relatively high latency. If your application does many scans at once, or requires low latency results, we recommend using SQL++ (with a primary index on the collection) instead.
- Annotations
- @SinceCouchbase()
- val scopeName: String
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def touch(id: String, expiry: Duration, options: TouchOptions): Future[MutationResult]
Updates the expiry of the document with the given id.
Updates the expiry of the document with the given id.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def touch(id: String, expiry: Duration, timeout: Duration = kvReadTimeout): Future[MutationResult]
Updates the expiry of the document with the given id.
Updates the expiry of the document with the given id.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def unlock(id: String, cas: Long, options: UnlockOptions): Future[Unit]
Unlock a locked document.
Unlock a locked document.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def unlock(id: String, cas: Long, timeout: Duration = kvReadTimeout): Future[Unit]
Unlock a locked document.
Unlock a locked document.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def upsert[T](id: String, content: T, options: UpsertOptions)(implicit serializer: JsonSerializer[T]): Future[MutationResult]
Upserts the contents of a full document in this collection.
Upserts the contents of a full document in this collection.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - def upsert[T](id: String, content: T, durability: Durability = Disabled, timeout: Duration = Duration.MinusInf)(implicit serializer: JsonSerializer[T]): Future[MutationResult]
Upserts the contents of a full document in this collection.
Upserts the contents of a full document in this collection.
This asynchronous version performs the same functionality and takes the same parameters, but returns the same result object asynchronously in a
Future
. - 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])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)