CBLDatabase
@interface CBLDatabase : NSObject
A Couchbase Lite database.
-
The database’s name.
Declaration
Objective-C
@property (readonly, nonatomic) NSString *_Nonnull name;
-
The database’s path. If the database is closed or deleted, nil value will be returned.
Declaration
Objective-C
@property (readonly, atomic, nullable) NSString *path;
-
The number of documents in the database.
Declaration
Objective-C
@property (readonly, atomic) uint64_t count;
-
The database’s configuration. The returned configuration object is readonly; an NSInternalInconsistencyException exception will be thrown if the configuration object is modified.
Declaration
Objective-C
@property (readonly, nonatomic) CBLDatabaseConfiguration *_Nonnull config;
-
Initializes a database object with a given name and the default database configuration. If the database does not yet exist, it will be created.
Declaration
Objective-C
- (nullable instancetype)initWithName:(nonnull NSString *)name error:(NSError *_Nullable *_Nullable)error;
Parameters
name
The name of the database.
error
On return, the error if any.
-
Initializes a Couchbase Lite database with a given name and database configuration. If the database does not yet exist, it will be created.
Declaration
Objective-C
- (nullable instancetype)initWithName:(nonnull NSString *)name config: (nullable CBLDatabaseConfiguration *)config error:(NSError *_Nullable *_Nullable)error;
Parameters
name
The name of the database.
config
The database configuration, or nil for the default configuration.
error
On return, the error if any.
-
Not available
Declaration
Objective-C
- (nonnull instancetype)init;
-
Gets an existing CBLMutableDocument object with the given ID. If the document with the given ID doesn’t exist in the database, the value returned will be nil.
Declaration
Objective-C
- (nullable CBLDocument *)documentWithID:(nonnull NSString *)id;
Parameters
id
The document ID.
Return Value
The CBLMutableDocument object.
-
Gets a document fragment with the given document ID.
Declaration
Objective-C
- (nonnull CBLDocumentFragment *)objectForKeyedSubscript: (nonnull NSString *)documentID;
Parameters
documentID
The document ID.
Return Value
The CBLDocumentFragment object.
-
Saves the given document to the database. If the document in the database has been updated since it was read by the given document, a conflict occurs, which will be resolved by invoking the conflict handler. This can happen if multiple application threads are writing to the database, or a pull replication is copying changes from a server.
Declaration
Objective-C
- (nullable CBLDocument *)saveDocument:(nonnull CBLMutableDocument *)document error:(NSError *_Nullable *_Nullable)error;
Parameters
document
The document to be saved.
error
On return, the error if any.
Return Value
The saved CBLDocument object.
-
Deletes the given document. All properties are removed, and subsequent calls to -documentWithID: will return nil. Deletion adds a special
tombstone
revision to the database, as bookkeeping so that the change can be replicated to other databases. Thus, it does not free up all of the disk space occupied by the document. To delete a document entirely (but without the ability to replicate this), use -purge:error:.Declaration
Objective-C
- (BOOL)deleteDocument:(nonnull CBLDocument *)document error:(NSError *_Nullable *_Nullable)error;
Parameters
document
The document to be deleted.
error
On return, the error if any.
Return Value
True on success, false on failure.
-
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.
Declaration
Objective-C
- (BOOL)purgeDocument:(nonnull CBLDocument *)document error:(NSError *_Nullable *_Nullable)error;
Parameters
document
The document to be purged.
error
On return, the error if any.
Return Value
True on success, false on failure.
-
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.
Declaration
Objective-C
- (BOOL)inBatch:(NSError *_Nullable *_Nullable)error usingBlock:(nonnull void (^)(void))block;
Parameters
error
On return, the error if any.
block
The block to execute a group of database operations.
Return Value
True on success, false on failure.
-
Closes a database.
Declaration
Objective-C
- (BOOL)close:(NSError *_Nullable *_Nullable)error;
Parameters
error
On return, the error if any.
Return Value
True on success, false on failure.
-
Deletes a database.
Declaration
Objective-C
- (BOOL) delete:(NSError *_Nullable *_Nullable)error;
Parameters
error
On return, the error if any.
Return Value
True on success, false on failure.
-
Compacts the database file by deleting unused attachment files and vacuuming the SQLite database
Declaration
Objective-C
- (BOOL)compact:(NSError *_Nullable *_Nullable)error;
Parameters
error
On return, the error if any.
Return Value
True on success, false on failure.
-
Changes the database’s encryption key, or removes encryption if the new key is nil.
Declaration
Objective-C
- (BOOL)setEncryptionKey:(nullable CBLEncryptionKey *)key error:(NSError *_Nullable *_Nullable)error;
Parameters
key
The encryption key.
error
On return, the error if any.
Return Value
True if the database was successfully re-keyed, or false on failure.
-
Deletes a database of the given name in the given directory.
Declaration
Objective-C
+ (BOOL)deleteDatabase:(nonnull NSString *)name inDirectory:(nullable NSString *)directory error:(NSError *_Nullable *_Nullable)error;
Parameters
name
The database name.
directory
The directory where the database is located at.
error
On return, the error if any.
Return Value
True on success, false on failure.
-
Checks whether a database of the given name exists in the given directory or not.
Declaration
Objective-C
+ (BOOL)databaseExists:(nonnull NSString *)name inDirectory:(nullable NSString *)directory;
Parameters
name
The database name.
directory
The directory where the database is located at.
Return Value
True on success, false on failure.
-
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.
Declaration
Objective-C
+ (BOOL)copyFromPath:(nonnull NSString *)path toDatabase:(nonnull NSString *)name withConfig:(nullable CBLDatabaseConfiguration *)config error:(NSError *_Nullable *_Nullable)error;
Parameters
path
The source database path.
name
The name of the new database to be created.
config
The database configuration for the new database.
error
On return, the error if any.
Return Value
True on success, false on failure.
-
Sets log level for the given log domain.
Declaration
Objective-C
+ (void)setLogLevel:(CBLLogLevel)level domain:(CBLLogDomain)domain;
Parameters
level
The log level.
domain
The log domain.
-
Adds a database change listener. Changes will be posted on the main queue.
Declaration
Objective-C
- (nonnull id<CBLListenerToken>)addChangeListener: (nonnull void (^)(CBLDatabaseChange *_Nonnull))listener;
Parameters
listener
The listener to post the 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
Objective-C
- (nonnull id<CBLListenerToken>) addChangeListenerWithQueue:(nullable dispatch_queue_t)queue listener: (nonnull void (^)(CBLDatabaseChange *_Nonnull))listener;
Parameters
queue
The dispatch queue.
listener
The 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. Changes will be posted on the main queue.
Declaration
Objective-C
- (nonnull id<CBLListenerToken>) addDocumentChangeListenerWithID:(nonnull NSString *)id listener:(nonnull void (^)(CBLDocumentChange *_Nonnull)) listener;
Parameters
id
The document ID.
listener
The 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
Objective-C
- (nonnull id<CBLListenerToken>) addDocumentChangeListenerWithID:(nonnull NSString *)id queue:(nullable dispatch_queue_t)queue listener:(nonnull void (^)(CBLDocumentChange *_Nonnull)) listener;
Parameters
id
The document ID.
queue
The dispatch queue.
listener
The 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
Objective-C
- (void)removeChangeListenerWithToken:(nonnull id<CBLListenerToken>)token;
Parameters
token
The listener token.
-
All index names.
Declaration
Objective-C
@property (readonly, atomic) NSArray<NSString *> *_Nonnull indexes;
-
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.
Declaration
Objective-C
- (BOOL)createIndex:(nonnull CBLIndex *)index withName:(nonnull NSString *)name error:(NSError *_Nullable *_Nullable)error;
Parameters
index
The index.
name
The index name.
error
error On return, the error if any.
Return Value
True on success, false on failure.
-
Deletes the index of the given index name.
Declaration
Objective-C
- (BOOL)deleteIndexForName:(nonnull NSString *)name error:(NSError *_Nullable *_Nullable)error;
Parameters
name
The index name.
error
error On return, the error if any.
Return Value
True on success, false on failure.