Appwrite. Services. Database
(appwrite v1.0.0)
View Source
The Database service allows you to create structured collections of documents, query and filter lists of documents, and manage an advanced set of read and write access permissions.
Summary
Functions
Create a new Document.
Create multiple Operations inside a Transaction in one request.
Create a new Transaction.
Atomically decrement a numeric attribute on a document.
Delete a Document by its unique ID.
Delete a Transaction by its unique ID.
Get a Document by its unique ID.
Get a Transaction by its unique ID.
Atomically increment a numeric attribute on a document.
List Documents in a collection.
List Transactions across all databases.
Update a Document by its unique ID.
Update (commit or rollback) a Transaction.
Upsert a Document (create or update atomically).
Functions
@spec create_document( String.t(), String.t(), String.t(), map() | nil, [String.t()] | nil, String.t() | nil ) :: {:ok, map()} | {:error, any()}
Create a new Document.
Parameters
database_id(required)collection_id(required)document_id(required) – useID.unique()for auto-generationdata(optional) – document payload mappermissions(optional) – list of permission stringstransaction_id(optional) – stage inside an existing transaction
Create multiple Operations inside a Transaction in one request.
Parameters
transaction_id(required)operations(optional) – list of operation maps
Create a new Transaction.
Parameters
ttl(optional) – seconds before the transaction expires
@spec decrement_document_attribute( String.t(), String.t(), String.t(), String.t(), number() | nil, number() | nil, String.t() | nil ) :: {:ok, map()} | {:error, any()}
Atomically decrement a numeric attribute on a document.
Parameters
database_id(required)collection_id(required)document_id(required)attribute(required) – the attribute key to decrementvalue(optional) – amount to decrement bymin(optional) – lower floor; exception thrown if breachedtransaction_id(optional)
@spec delete_document(String.t(), String.t(), String.t(), String.t() | nil) :: {:ok, map()} | {:error, any()}
Delete a Document by its unique ID.
Parameters
database_id(required)collection_id(required)document_id(required)transaction_id(optional)
Delete a Transaction by its unique ID.
Parameters
transaction_id(required)
@spec get_document( String.t(), String.t(), String.t(), [String.t()] | nil, String.t() | nil ) :: {:ok, map()} | {:error, any()}
Get a Document by its unique ID.
Parameters
database_id(required)collection_id(required)document_id(required)queries(optional)transaction_id(optional) – read uncommitted changes within a transaction
Get a Transaction by its unique ID.
Parameters
transaction_id(required)
@spec increment_document_attribute( String.t(), String.t(), String.t(), String.t(), number() | nil, number() | nil, String.t() | nil ) :: {:ok, map()} | {:error, any()}
Atomically increment a numeric attribute on a document.
Parameters
database_id(required)collection_id(required)document_id(required)attribute(required) – the attribute key to incrementvalue(optional) – amount to increment bymax(optional) – upper cap; error thrown if exceededtransaction_id(optional)
@spec list_documents( String.t(), String.t(), [String.t()] | nil, String.t() | nil, boolean() | nil, integer() | nil ) :: {:ok, map()} | {:error, any()}
List Documents in a collection.
Parameters
database_id(required)collection_id(required)queries(optional)transaction_id(optional)total(optional) – whenfalse, skips count calculationttl(optional) – cache TTL in seconds (0–86400) for select queries
List Transactions across all databases.
Parameters
queries(optional)
@spec update_document( String.t(), String.t(), String.t(), map() | nil, [String.t()] | nil, String.t() | nil ) :: {:ok, map()} | {:error, any()}
Update a Document by its unique ID.
Parameters
database_id(required)collection_id(required)document_id(required)data(optional) – fields to updatepermissions(optional)transaction_id(optional)
@spec update_transaction(String.t(), boolean() | nil, boolean() | nil) :: {:ok, map()} | {:error, any()}
Update (commit or rollback) a Transaction.
Parameters
transaction_id(required)commit(optional) – passtrueto commitrollback(optional) – passtrueto rollback
@spec upsert_document( String.t(), String.t(), String.t(), map() | nil, [String.t()] | nil, String.t() | nil ) :: {:ok, map()} | {:error, any()}
Upsert a Document (create or update atomically).
Parameters
database_id(required)collection_id(required)document_id(required)data(optional)permissions(optional)transaction_id(optional)