public class ReactiveCollection extends Object
ReactiveCollection
provides sophisticated asynchronous access to all collection APIs.
This API provides more sophisticated async controls over the AsyncCollection
, but
it also comes with a little more overhead. For most use cases we recommend using this API
over the other one, unless you really need that last drop of performance and can live with the
significantly reduced functionality (in terms of the richness of operators). For example, this
ReactiveCollection
is built on top of the AsyncCollection
.
Modifier and Type | Method and Description |
---|---|
AsyncCollection |
async()
Provides access to the underlying
AsyncCollection . |
ReactiveBinaryCollection |
binary()
Provides access to the binary APIs, not used for JSON documents.
|
String |
bucketName()
Returns the name of the bucket associated with this collection.
|
Core |
core()
Provides access to the underlying
Core . |
ClusterEnvironment |
environment()
Provides access to the underlying
ClusterEnvironment . |
Mono<ExistsResult> |
exists(String id)
Checks if the given document ID exists on the active partition with default options.
|
Mono<ExistsResult> |
exists(String id,
ExistsOptions options)
Checks if the given document ID exists on the active partition with custom options.
|
Mono<GetResult> |
get(String id)
Fetches a Document from a collection with default options.
|
Mono<GetResult> |
get(String id,
GetOptions options)
Fetches a Document from a collection with custom options.
|
Flux<GetReplicaResult> |
getAllReplicas(String id)
Reads all available replicas, including the active, and returns the results as a flux.
|
Flux<GetReplicaResult> |
getAllReplicas(String id,
GetAllReplicasOptions options)
Reads all available replicas, including the active, and returns the results as a flux.
|
Mono<GetResult> |
getAndLock(String id,
Duration lockTime)
Fetches a full document and write-locks it for the given duration with default options.
|
Mono<GetResult> |
getAndLock(String id,
Duration lockTime,
GetAndLockOptions options)
Fetches a full document and write-locks it for the given duration with custom options.
|
Mono<GetResult> |
getAndTouch(String id,
Duration expiry)
Fetches a full document and resets its expiration time to the value provided with default
options.
|
Mono<GetResult> |
getAndTouch(String id,
Duration expiry,
GetAndTouchOptions options)
Fetches a full document and resets its expiration time to the value provided with custom
options.
|
Mono<GetReplicaResult> |
getAnyReplica(String id)
Reads all available replicas, and returns the first found.
|
Mono<GetReplicaResult> |
getAnyReplica(String id,
GetAnyReplicaOptions options)
Reads all available replicas, and returns the first found.
|
Mono<MutationResult> |
insert(String id,
Object content)
Inserts a full document which does not exist yet with default options.
|
Mono<MutationResult> |
insert(String id,
Object content,
InsertOptions options)
Inserts a full document which does not exist yet with custom options.
|
Mono<LookupInResult> |
lookupIn(String id,
List<LookupInSpec> specs)
Performs lookups to document fragments with default options.
|
Mono<LookupInResult> |
lookupIn(String id,
List<LookupInSpec> specs,
LookupInOptions options)
Performs lookups to document fragments with custom options.
|
Mono<MutateInResult> |
mutateIn(String id,
List<MutateInSpec> specs)
Performs mutations to document fragments with default options.
|
Mono<MutateInResult> |
mutateIn(String id,
List<MutateInSpec> specs,
MutateInOptions options)
Performs mutations to document fragments with custom options.
|
String |
name()
Returns the name of this collection.
|
Mono<MutationResult> |
remove(String id)
Removes a Document from a collection with default options.
|
Mono<MutationResult> |
remove(String id,
RemoveOptions options)
Removes a Document from a collection with custom options.
|
Mono<MutationResult> |
replace(String id,
Object content)
Replaces a full document which already exists with default options.
|
Mono<MutationResult> |
replace(String id,
Object content,
ReplaceOptions options)
Replaces a full document which already exists with custom options.
|
String |
scopeName()
Returns the name of the scope associated with this collection.
|
Mono<MutationResult> |
touch(String id,
Duration expiry)
Updates the expiry of the document with the given id with default options.
|
Mono<MutationResult> |
touch(String id,
Duration expiry,
TouchOptions options)
Updates the expiry of the document with the given id with custom options.
|
Mono<Void> |
unlock(String id,
long cas)
Unlocks a document if it has been locked previously, with default options.
|
Mono<Void> |
unlock(String id,
long cas,
UnlockOptions options)
Unlocks a document if it has been locked previously, with custom options.
|
Mono<MutationResult> |
upsert(String id,
Object content)
Upserts a full document which might or might not exist yet with default options.
|
Mono<MutationResult> |
upsert(String id,
Object content,
UpsertOptions options)
Upserts a full document which might or might not exist yet with custom options.
|
public AsyncCollection async()
AsyncCollection
.AsyncCollection
.public String name()
public String bucketName()
public String scopeName()
@Stability.Volatile public Core core()
Core
.public ClusterEnvironment environment()
ClusterEnvironment
.public ReactiveBinaryCollection binary()
ReactiveBinaryCollection
.public Mono<GetResult> get(String id)
id
- the document id which is used to uniquely identify it.Mono
indicating once loaded or failed.public Mono<GetResult> get(String id, GetOptions options)
id
- the document id which is used to uniquely identify it.options
- custom options to change the default behavior.Mono
indicating once loaded or failedpublic Mono<GetResult> getAndLock(String id, Duration lockTime)
Note that the client does not enforce an upper limit on the Duration
lockTime. The maximum lock time
by default on the server is 30 seconds. Any value larger than 30 seconds will be capped down by the server to
the default lock time, which is 15 seconds unless modified on the server side.
id
- the document id which is used to uniquely identify it.lockTime
- how long to write-lock the document for (any duration > 30s will be capped to server default of 15s).Mono
completing once loaded or failed.public Mono<GetResult> getAndLock(String id, Duration lockTime, GetAndLockOptions options)
Note that the client does not enforce an upper limit on the Duration
lockTime. The maximum lock time
by default on the server is 30 seconds. Any value larger than 30 seconds will be capped down by the server to
the default lock time, which is 15 seconds unless modified on the server side.
id
- the document id which is used to uniquely identify it.lockTime
- how long to write-lock the document for (any duration > 30s will be capped to server default of 15s).options
- custom options to change the default behavior.Mono
completing once loaded or failed.public Mono<GetResult> getAndTouch(String id, Duration expiry)
id
- the document id which is used to uniquely identify it.expiry
- the new expiration time for the document.Mono
completing once loaded or failed.public Mono<GetResult> getAndTouch(String id, Duration expiry, GetAndTouchOptions options)
id
- the document id which is used to uniquely identify it.expiry
- the new expiration time for the document.options
- custom options to change the default behavior.Mono
completing once loaded or failed.public Flux<GetReplicaResult> getAllReplicas(String id)
Note that individual errors are ignored, so you can think of this API as a best effort approach which explicitly emphasises availability over consistency.
Raises NoSuchElementException on the flux if no replica was available.
id
- the document id.public Flux<GetReplicaResult> getAllReplicas(String id, GetAllReplicasOptions options)
Raises NoSuchElementException on the flux if no replica was available.
id
- the document id.options
- the custom options.public Mono<GetReplicaResult> getAnyReplica(String id)
Raises NoSuchElementException on the mono if no replica was available.
id
- the document id.public Mono<GetReplicaResult> getAnyReplica(String id, GetAnyReplicaOptions options)
Raises NoSuchElementException on the mono if no replica was available.
id
- the document id.options
- the custom options.public Mono<ExistsResult> exists(String id)
id
- the document IDMono
completing once loaded or failed.public Mono<ExistsResult> exists(String id, ExistsOptions options)
id
- the document IDoptions
- to modify the default behaviorMono
completing once loaded or failed.public Mono<MutationResult> remove(String id)
id
- the id of the document to remove.Mono
completing once removed or failed.public Mono<MutationResult> remove(String id, RemoveOptions options)
id
- the id of the document to remove.options
- custom options to change the default behavior.Mono
completing once removed or failed.public Mono<MutationResult> insert(String id, Object content)
id
- the document id to insert.content
- the document content to insert.Mono
completing once inserted or failed.public Mono<MutationResult> insert(String id, Object content, InsertOptions options)
id
- the document id to insert.content
- the document content to insert.options
- custom options to customize the insert behavior.Mono
completing once inserted or failed.public Mono<MutationResult> upsert(String id, Object content)
id
- the document id to upsert.content
- the document content to upsert.Mono
completing once upserted or failed.public Mono<MutationResult> upsert(String id, Object content, UpsertOptions options)
id
- the document id to upsert.content
- the document content to upsert.options
- custom options to customize the upsert behavior.Mono
completing once upserted or failed.public Mono<MutationResult> replace(String id, Object content)
id
- the document id to replace.content
- the document content to replace.Mono
completing once replaced or failed.public Mono<MutationResult> replace(String id, Object content, ReplaceOptions options)
id
- the document id to replace.content
- the document content to replace.options
- custom options to customize the replace behavior.Mono
completing once replaced or failed.public Mono<MutationResult> touch(String id, Duration expiry)
id
- the id of the document to update.expiry
- the new expiry for the document.MutationResult
once the operation completes.public Mono<MutationResult> touch(String id, Duration expiry, TouchOptions options)
id
- the id of the document to update.expiry
- the new expiry for the document.options
- the custom options.MutationResult
once the operation completes.public Mono<Void> unlock(String id, long cas)
id
- the id of the document.cas
- the CAS value which is needed to unlock it.public Mono<Void> unlock(String id, long cas, UnlockOptions options)
id
- the id of the document.cas
- the CAS value which is needed to unlock it.options
- the options to customize.public Mono<LookupInResult> lookupIn(String id, List<LookupInSpec> specs)
id
- the outer document ID.specs
- the spec which specifies the type of lookups to perform.LookupInResult
once the lookup has been performed or failed.public Mono<LookupInResult> lookupIn(String id, List<LookupInSpec> specs, LookupInOptions options)
id
- the outer document ID.specs
- the spec which specifies the type of lookups to perform.options
- custom options to modify the lookup options.LookupInResult
once the lookup has been performed or failed.public Mono<MutateInResult> mutateIn(String id, List<MutateInSpec> specs)
id
- the outer document ID.specs
- the spec which specifies the type of mutations to perform.MutateInResult
once the mutation has been performed or failed.public Mono<MutateInResult> mutateIn(String id, List<MutateInSpec> specs, MutateInOptions options)
id
- the outer document ID.specs
- the spec which specifies the type of mutations to perform.options
- custom options to modify the mutation options.MutateInResult
once the mutation has been performed or failed.Copyright © 2021 Couchbase, Inc.. All rights reserved.