Database
public final class Database
A Couchbase Lite database.
-
Initializes a Couchbase Lite database with a given name and database options. If the database does not yet exist, it will be created, unless the
readOnlyoption is used.Throws
An error when the database cannot be opened.Declaration
Swift
public init(name: String, config: DatabaseConfiguration = DatabaseConfiguration()) throwsParameters
nameThe name of the database.
configThe database options, or nil for the default options.
-
The database’s name.
Declaration
Swift
public var name: String -
The database’s path. If the database is closed or deleted, nil value will be returned.
Declaration
Swift
public var path: String? -
The total numbers of documents in the database.
Declaration
Swift
public var count: UInt64 -
The database configuration.
Declaration
Swift
public var config: DatabaseConfiguration -
Gets a Document object with the given ID.
Declaration
Swift
public func document(withID id: String) -> Document? -
Gets document fragment object by the given document ID.
Declaration
Swift
public subscript(key: String) -> DocumentFragment -
Saves a document to the database. When write operations are executed concurrently, the last writer will overwrite all other written values. Calling this function is the same as calling the saveDocument(document, concurrencyControl) function with ConcurrencyControl.lastWriteWins.
Throws
An error on a failure.Declaration
Swift
public func saveDocument(_ document: MutableDocument) throwsParameters
documentThe document.
-
Saves a document to the database. When used with lastWriteWins concurrency control, the last write operation will win if there is a conflict. When used with failOnConflict concurrency control, save will fail with ‘false’ value returned.
Throws
An error on a failure.Declaration
Swift
@discardableResult public func saveDocument( _ document: MutableDocument, concurrencyControl: ConcurrencyControl) throws -> BoolParameters
documentThe document.
concurrencyControlThe concurrency control.
Return Value
True if successful. False if the failOnConflict concurrency control is used, and there is a conflict.
-
Deletes a document from the database. When write operations are executed concurrently, the last writer will overwrite all other written values. Calling this function is the same as calling the deleteDocument(document, concurrencyControl) function with ConcurrencyControl.lastWriteWins.
Throws
An error on a failure.Declaration
Swift
public func deleteDocument(_ document: Document) throwsParameters
documentThe document.
-
Deletes a document from the database. When used with lastWriteWins concurrency control, the last write operation will win if there is a conflict. When used with failOnConflict concurrency control, save will fail with ‘false’ value returned.
Throws
An error on a failure.Declaration
Swift
@discardableResult public func deleteDocument( _ document: Document, concurrencyControl: ConcurrencyControl) throws -> BoolParameters
documentThe document.
concurrencyControlThe concurrency control.
Return Value
True if successful. False if the failOnConflict concurrency control is used, and there is a conflict.
-
Purges the given document from the database. This is more drastic than deletion: it removes all traces of the document. The purge will NOT be replicated to other databases.
Throws
An error on a failure.Declaration
Swift
public func purgeDocument(_ document: Document) throwsParameters
documentThe document.
-
Runs a group of database operations in a batch. Use this when performing bulk write operations like multiple inserts/updates; it saves the overhead of multiple database commits, greatly improving performance.
Throws
An error on a failure.Declaration
Swift
public func inBatch(using block: () throws -> Void ) throwsParameters
blockThe block to be executed as a batch operations.
-
Adds a database change listener. Changes will be posted on the main queue.
Declaration
Swift
@discardableResult public func addChangeListener( _ listener: @escaping (DatabaseChange) -> Void) -> ListenerTokenParameters
listenerThe listener to post changes.
Return Value
An opaque listener token object for removing the listener.
-
Adds a database change listener with the dispatch queue on which changes will be posted. If the dispatch queue is not specified, the changes will be posted on the main queue.
Declaration
Swift
@discardableResult public func addChangeListener(withQueue queue: DispatchQueue?, listener: @escaping (DatabaseChange) -> Void) -> ListenerTokenParameters
queueThe dispatch queue.
listenerThe listener to post changes.
Return Value
An opaque listener token object for removing the listener.
-
Adds a document change listener block for the given document ID.
Declaration
Swift
@discardableResult public func addDocumentChangeListener(withID id: String, listener: @escaping (DocumentChange) -> Void) -> ListenerTokenParameters
documentIDThe document ID.
listenerThe listener to post changes.
Return Value
An opaque listener token object for removing the listener.
-
Adds a document change listener for the document with the given ID and the dispatch queue on which changes will be posted. If the dispatch queue is not specified, the changes will be posted on the main queue.
Declaration
Swift
@discardableResult public func addDocumentChangeListener(withID id: String, queue: DispatchQueue?, listener: @escaping (DocumentChange) -> Void) -> ListenerTokenParameters
idThe document ID.
queueThe dispatch queue.
listenerThe listener to post changes.
Return Value
An opaque listener token object for removing the listener.
-
Removes a change listener with the given listener token.
Declaration
Swift
public func removeChangeListener(withToken token: ListenerToken)Parameters
tokenThe listener token.
-
Closes a database.
Throws
An error on a failure.Declaration
Swift
public func close() throws -
Deletes a database.
Throws
An error on a failure.Declaration
Swift
public func delete() throws -
Compacts the database file by deleting unused attachment files and vacuuming the SQLite database.
Throws
An error on a failureDeclaration
Swift
public func compact() throws -
Deletes a database of the given name in the given directory.
Throws
An error on a failure.Declaration
Swift
public static func delete(withName name: String, inDirectory directory: String? = nil) throwsParameters
nameThe database name.
directoryThe directory where the database is located at.
-
Checks whether a database of the given name exists in the given directory or not.
Declaration
Swift
public static func exists(withName name: String, inDirectory directory: String? = nil) -> BoolParameters
nameThe database name.
directoryThe directory where the database is located at.
Return Value
True if the database exists, otherwise false.
-
Copies a canned databaes from the given path to a new database with the given name and the configuration. The new database will be created at the directory specified in the configuration. Without given the database configuration, the default configuration that is equivalent to setting all properties in the configuration to nil will be used.
Throws
An error on a failure.Declaration
Swift
public static func copy(fromPath path: String, toDatabase name: String, withConfig config: DatabaseConfiguration?) throwsParameters
pathThe source database path.
nameThe name of the new database to be created.
configThe database configuration for the new database name.
-
All index names.
Declaration
Swift
public var indexes: Array<String> -
Creates an index which could be a value index or a full-text search index with the given name. The name can be used for deleting the index. Creating a new different index with an existing index name will replace the old index; creating the same index with the same name will be no-ops.
Throws
An error on a failure.Declaration
Swift
public func createIndex(_ index: Index, withName name: String) throwsParameters
indexThe index.
nameThe index name.
-
Deletes the index of the given index name.
Throws
An error on a failure.Declaration
Swift
public func deleteIndex(forName name: String) throwsParameters
nameThe index name.
Database Class Reference