Classes

The following classes are available globally.

  • CBLArray provides read access to array data.

    See more

    Declaration

    Objective-C

    @interface CBLArray : NSObject <CBLArray, NSCopying, NSMutableCopying>
  • Configuration for indexing property values within nested arrays in documents, intended for use with the UNNEST query.

    See more

    Declaration

    Objective-C

    @interface CBLArrayIndexConfiguration
  • Authenticator objects provide server authentication credentials to the replicator. CBLAuthenticator is an abstract superclass; you must instantiate one of its subclasses. CBLAuthenticator is not meant to be subclassed by applications.

    See more

    Declaration

    Objective-C

    @interface CBLAuthenticator : NSObject
  • The CBLBasicAuthenticator class is an authenticator that will authenticate using HTTP Basic auth with the given username and password. This should only be used over an SSL/TLS connection, as otherwise it’s very easy for anyone sniffing network traffic to read the password.

    See more

    Declaration

    Objective-C

    @interface CBLBasicAuthenticator : CBLAuthenticator
  • A CBLBlob contains arbitrary binary data, tagged with a MIME type. Blobs can be arbitrarily large, and their data is loaded only on demand (when the content or contentStream properties are accessed), not when the document is loaded. The document’s raw JSON form only contains the CBLBlob’s metadata (type, length and a digest of the data) in a small object. The data itself is stored externally to the document, keyed by the digest.

    See more

    Declaration

    Objective-C

    @interface CBLBlob : NSObject
  • ENTERPRISE EDITION ONLY.

    An authenticator that presents a client certificate to the server during the initial SSL/TLS handshake. This is currently used for authenticating with CBLURLEndpointListener only.

    See more

    Declaration

    Objective-C

    @interface CBLClientCertificateAuthenticator : CBLAuthenticator
  • A CBLCollection represent a collection which is a container for documents.

    A collection can be thought as a table in the relational database. Each collection belongs to a scope which is simply a namespace, and has a name which is unique within its scope.

    When a new database is created, a default collection named “_default” will be automatically created. The default collection is created under the default scope named “_default”. The name of the default collection and scope can be referenced by using kCBLDefaultCollectionName and kCBLDefaultScopeName constant.

    Note

    The default collection cannot be deleted.

    When creating a new collection, the collection name, and the scope name are required. The naming rules of the collections and scopes are as follows:

    • Must be between 1 and 251 characters in length.
    • Can only contain the characters A-Z, a-z, 0-9, and the symbols _, -, and %.
    • Cannot start with _ or %.
    • Both scope and collection names are case sensitive.

    CBLCollection Lifespan

    A Collection object and its reference remain valid until either the database is closed or the collection itself is deleted, in that case it will return CBLErrorNotOpen while accessing the collection APIs.

    Legacy Database and API

    When using the legacy database, the existing documents and indexes in the database will be automatically migrated to the default collection.

    Any pre-existing database functions that refer to documents, listeners, and indexes without specifying a collection such as \ref [database documentWithID:]] will implicitly operate on the default collection. In other words, they behave exactly the way they used to, but collection-aware code should avoid them and use the new Collection API instead. These legacy functions are deprecated and will be removed eventually.

    See more

    Declaration

    Objective-C

    @interface CBLCollection : NSObject
  • The collection change event

    See more

    Declaration

    Objective-C

    @interface CBLCollectionChange : NSObject
  • The collection configuration that can be configured specifically for the replication.

    See more

    Declaration

    Objective-C

    @interface CBLCollectionConfiguration : NSObject
  • Conflict class, which includes the conflicted documents.

    See more

    Declaration

    Objective-C

    @interface CBLConflict : NSObject
  • ConflictResolver class provides access to the default conflict resolver used by the replicator

    See more

    Declaration

    Objective-C

    @interface CBLConflictResolver : NSObject
  • Console logger for writing log messages to the system console.

    See more

    Declaration

    Objective-C

    @interface CBLConsoleLogger : NSObject
  • ENTERPRISE EDITION ONLY

    CBLCoreMLPredictiveModel is a Core ML based implementation of the CBLPredictiveModel protocol. Basically the CBLCoreMLPredictiveModel used a Core ML model to return prediction results.

    CBLCoreMLPredictiveModel automatically converts between Couchbase Lite data and Core ML data when calling into the MLModel object to return prediction results. All Core ML data types including Int64, Double, String, Dictionary, MultiArray, Image, and Sequence are supported.

    When the MLObject has a single input and the input type is Image, CBLCoreMLPredictiveModel will use Vision framework via the VNCoreMLModel to process the input image and call into the MLModel object. The CBLCoreMLPredictiveModel supports all VNObservation types including VNClassificationObservation, VNCoreMLFeatureValueObservation, and VNPixelBufferObservation as mentioned in https://developer.apple.com/documentation/vision/vncoremlrequest.

    However there is a compatibility limitation when the VNCoreMLModel returns VNCoreMLFeatureValueObservation or VNPixelBufferObservation results that the MLModel must return a single output, otherwise the observation outputs cannot be mapped to the MLModel outputs. When the VNCoreMLModel cannot be used to result the prediction result, CoreMLPredictiveModel will fall back to use the MLModel instead.

    When converting from blob data to VNPixelBuffer for an input image, only ARGB pixel format is currently supported. However this limitation is applied only when the VNCoreMLModel cannot be used.

    See more

    Declaration

    Objective-C

    @interface CBLCoreMLPredictiveModel : NSObject
  • A Couchbase Lite database.

    See more

    Declaration

    Objective-C

    @interface CBLDatabase : NSObject
  • Deprecated

    Database Change information

    See more

    Declaration

    Objective-C

    
    @interface CBLDatabaseChange : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface CBLDatabaseConfiguration : NSObject
    
    /**
     Path to the directory to store the database in. If the directory doesn't already exist it will
     be created when the database is opened. The default directory will be in Application Support.
     You won't usually need to change this.
     */
    @property (nonatomic, copy) NSString* directory;
    
    /** 
     As Couchbase Lite normally configures its databases, there is a very
     small (though non-zero) chance that a power failure at just the wrong
     time could cause the most recently committed transaction's changes to
     be lost. This would cause the database to appear as it did immediately
     before that transaction.
     
     Setting this mode true ensures that an operating system crash or
     power failure will not cause the loss of any data. FULL synchronous
     is very safe but it is also dramatically slower.
     */
    @property (nonatomic) BOOL fullSync;
    
    /**
     Enables or disables memory-mapped I/O. By default, memory-mapped I/O is enabled.
     Disabling it may affect database performance. Typically, there is no need to modify this setting.
    
     @note: Memory-mapped I/O is always disabled to prevent database corruption on macOS.
     As a result, setting this configuration has no effect on the macOS platform.
     */
    @property (nonatomic) BOOL mmapEnabled;
    
    /**
     Initializes the CBLDatabaseConfiguration object.
     */
    - (instancetype) init;
    
    
    /**
     Initializes the CBLDatabaseConfiguration object with the configuration object.
    
     @param config The configuration object.
     @return The CBLDatabaseConfiguration object.
     */
    - (instancetype) initWithConfig: (nullable CBLDatabaseConfiguration*)config;
    
    @end
  • ENTERPRISE EDITION ONLY.

    Database based replication target endpoint. Available in the Enterprise Edition only.

    See more

    Declaration

    Objective-C

    @interface CBLDatabaseEndpoint : NSObject <CBLEndpoint>
  • CBLDictionary provides read access to dictionary data.

    See more

    Declaration

    Objective-C

    @interface CBLDictionary : NSObject <CBLDictionary, NSCopying, NSMutableCopying>
  • A Couchbase Lite document. The CBLDocument is immutable.

    See more

    Declaration

    Objective-C

    @interface CBLDocument : NSObject <CBLDictionary, NSMutableCopying>
  • Document change information

    See more

    Declaration

    Objective-C

    @interface CBLDocumentChange : NSObject
  • CBLDocumentFragment provides access to a document object. CBLDocumentFragment also provides subscript access by either key or index to the data values of the document which are wrapped by CBLFragment objects.

    See more

    Declaration

    Objective-C

    @interface CBLDocumentFragment : NSObject <CBLDictionaryFragment>
  • Document replication event

    See more

    Declaration

    Objective-C

    @interface CBLDocumentReplication : NSObject
  • CBLReplicatedDocument contains the information of a document that has been replicated.

    See more

    Declaration

    Objective-C

    @interface CBLReplicatedDocument : NSObject
  • ENTERPRISE EDITION ONLY.

    An encryption key for a database. This is a symmetric key that be kept secret. It should be stored either in the Keychain, or in the user’s memory (hopefully not a sticky note.)

    See more

    Declaration

    Objective-C

    @interface CBLEncryptionKey : NSObject
  • ENTERPRISE EDITION ONLY.

    Couchbase Lite Extension.

    See more

    Declaration

    Objective-C

    @interface CBLExtension : NSObject
  • File logger used for writing log messages to files. To enable the file logger, setup the log file configuration and specifiy the log level as desired.

    It is important to configure your CBLLogFileConfiguration object appropriately before setting to a logger. Logger make a copy of the configuration settings you provide and use those settings to configure the logger. Once configured, the logger object ignores any changes you make to the CBLLogFileConfiguration object.

    See more

    Declaration

    Objective-C

    @interface CBLFileLogger : NSObject
  • CBLFragment provides read access to data value. CBLFragment also provides subscript access by either key or index to the nested values which are wrapped by the CBLFragment objects.

    Declaration

    Objective-C

    @interface CBLFragment
        : NSObject <CBLFragment, CBLDictionaryFragment, CBLArrayFragment>
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface CBLFullTextIndex: CBLIndex
    
    /**
     Set the true value to ignore accents/diacritical marks. The default value is false.
     */
    @property (nonatomic) BOOL ignoreAccents;
    
    /**
     The language code which is an ISO-639 language such as "en", "fr", etc.
     Setting the language code affects how word breaks and word stems are parsed.
     Without setting the value, the current locale's language will be used. Setting
     a nil or "" value to disable the language features.
     */
    @property (nonatomic, copy, nullable) NSString* language;
    
    /** Not available */
    - (instancetype) init NS_UNAVAILABLE;
    
    @end
  • Full-text Index Item.

    See more

    Declaration

    Objective-C

    @interface CBLFullTextIndexItem : NSObject
  • Configuration for creating full-text indexes.

    See more

    Declaration

    Objective-C

    @interface CBLFullTextIndexConfiguration : CBLIndexConfiguration
  • CBLIndex represents an index which could be a value index for regular queries or full-text index for full-text queries (using the match operator).

    See more

    Declaration

    Objective-C

    @interface CBLIndex : NSObject
  • IndexBuilder used for building database index objects.

    See more

    Declaration

    Objective-C

    @interface CBLIndexBuilder : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface CBLIndexConfiguration : NSObject
    
    /**
     Gets the expressions to use to create the index.
     */
    @property (nonatomic, readonly) NSArray<NSString*>* expressions;
    
    - (instancetype) init NS_UNAVAILABLE;
    
    @end
  • ENTERPRISE EDITION ONLY

    CBLIndexUpdater is used for updating the index in lazy mode. Currently, the vector index is the only index type that can be updated lazily.

    See more

    Declaration

    Objective-C

    @interface CBLIndexUpdater : NSObject <CBLArray>
  • ENTERPRISE EDITION ONLY.

    Certificate Authenticator for the CBLURLEndpointListener.

    See more

    Declaration

    Objective-C

    @interface CBLListenerCertificateAuthenticator
        : NSObject <CBLListenerAuthenticator>
  • ENTERPRISE EDITION ONLY.

    Password Authenticator for the CBLURLEndpointListener.

    See more

    Declaration

    Objective-C

    @interface CBLListenerPasswordAuthenticator
        : NSObject <CBLListenerAuthenticator>
  • Log allows to configure console and file logger or to set a custom logger.

    See more

    Declaration

    Objective-C

    @interface CBLLog : NSObject
  • Log file configuration.

    See more

    Declaration

    Objective-C

    @interface CBLLogFileConfiguration : NSObject
  • ENTERPRISE EDITION ONLY.

    A message sent between message endpoint connections.

    See more

    Declaration

    Objective-C

    @interface CBLMessage : NSObject
  • ENTERPRISE EDITION ONLY.

    Message endpoint.

    See more

    Declaration

    Objective-C

    @interface CBLMessageEndpoint : NSObject <CBLEndpoint>
  • ENTERPRISE EDITION ONLY.

    The listener for incoming message endpoint connections.

    See more

    Declaration

    Objective-C

    @interface CBLMessageEndpointListener : NSObject
  • ENTERPRISE EDITION ONLY.

    The configuration for the CBLMessageEndpointListener.

    See more

    Declaration

    Objective-C

    @interface CBLMessageEndpointListenerConfiguration : NSObject
  • ENTERPRISE EDITION ONLY.

    A change event posted by CBLMessageEndpointListener.

    See more

    Declaration

    Objective-C

    @interface CBLMessageEndpointListenerChange : NSObject
  • ENTERPRISE EDITION ONLY.

    The messaging error.

    See more

    Declaration

    Objective-C

    @interface CBLMessagingError : NSObject
  • CBLMutableArray provides access to array data.

    See more

    Declaration

    Objective-C

    @interface CBLMutableArray : CBLArray <CBLMutableArray>
  • CBLMutableDictionary is a mutable version of the CBLDictionary.

    See more

    Declaration

  • The mutable version of the CBLDocument.

    See more

    Declaration

    Objective-C

    @interface CBLMutableDocument : CBLDocument <CBLMutableDictionary>
  • CBLMutableFragment provides read and write access to data value. CBLMutableFragment also provides subscript access by either key or index to the nested values which are wrapped by CBLMutableFragment objects.

  • The prediction model manager for registering and unregistering predictive models.

    See more

    Declaration

    Objective-C

    @interface CBLPrediction : NSObject
  • ENTERPRISE EDITION ONLY

    The predictive index used for querying with prediction function. The predictive index is different from the normal index in that the predictive index will cache the prediction result along with creating the value index of the prediction output properties.

    The PredictiveIndex can be created by using IndexBuilder’s predictiveIndex() function. If the prediction output properties are not specified, the predictive index will only cache the predictive result so that the predictive model will not be called again after indexing.

    See more

    Declaration

    Objective-C

    @interface CBLPredictiveIndex : CBLIndex
  • A database query. A CBLQuery instance can be constructed by calling one of the select methods.

    See more

    Declaration

    Objective-C

    @interface CBLQuery : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface CBLQueryArrayExpression : NSObject
    
    /**
     Creates a variable expression that represents an item in the array expression
     (ANY/ANY AND EVERY/EVERY <variable> IN <expr> SATISFIES <expr>).
     
     @param name The variable name.
     @return The variable expression.
     */
    + (CBLQueryVariableExpression*) variableWithName: (NSString*)name;
    
    /**
     Creates an ANY quantified operator (ANY <variable> IN <expr> SATISFIES <expr>)
     to evaluate expressions over an array. The ANY operator returns TRUE
     if at least one of the items in the array satisfies the given satisfies expression.
     
     @param variable The variable expression.
     @param inExpression The IN expression that can be evaluated as an array value.
     @param satisfies The expression to be evaluated with.
     @return The ANY quantifies operator.
     */
    + (CBLQueryExpression*) any: (CBLQueryVariableExpression*)variable
                             in: (CBLQueryExpression*)inExpression
                      satisfies: (CBLQueryExpression*)satisfies;
    
    /**
     Creates an ANY AND EVERY quantified operator (ANY AND EVERY <variable name> IN <expr>
     SATISFIES <expr>) to evaluate expressions over an array. The ANY AND EVERY operator
     returns TRUE if the array is NOT empty, and at least one of the items in the array
     satisfies the given satisfies expression.
     
     @param variable The variable expression.
     @param inExpression The IN expression that can be evaluated as an array value.
     @param satisfies The expression to be evaluated with.
     @return The ANY AND EVERY quantifies operator.
     */
    + (CBLQueryExpression*) anyAndEvery: (CBLQueryVariableExpression*)variable
                                     in: (CBLQueryExpression*)inExpression
                              satisfies: (CBLQueryExpression*)satisfies;
    
    /**
     Creates an EVERY quantified operator (ANY <variable name> IN <expr> SATISFIES <expr>)
     to evaluate expressions over an array. The EVERY operator returns TRUE
     if the array is empty OR every item in the array satisfies the given satisfies expression.
     
     @param variable The variable expression.
     @param inExpression The IN expression that can be evaluated as an array value.
     @param satisfies The expression to be evaluated with.
     @return The EVERY quantifies operator.
     */
    + (CBLQueryExpression*) every: (CBLQueryVariableExpression*)variable
                               in: (CBLQueryExpression*)inExpression
                        satisfies: (CBLQueryExpression*)satisfies;
    
    /** Not available */
    - (instancetype) init NS_UNAVAILABLE;
    
    @end
  • CBLQueryArrayFunction provides array based functions.

    See more

    Declaration

    Objective-C

    @interface CBLQueryArrayFunction : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface CBLQueryBuilder : NSObject
    
    // SELECT > FROM
    
    /**
     Create a query from the select and from component.
     
     @param select The select component reresenting the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from;
    
    /**
     Create a distinct query from the select and from component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from;
    
    // SELECT > FROM > WHERE
    
    /**
     Create a query from the select, from, and where component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from
                   where: (nullable CBLQueryExpression*)where;
    
    /**
     Create a distinct query from the select, from, and where component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from
                           where: (nullable CBLQueryExpression*)where;
    
    // SELECT > FROM > WHERE > ORDER BY
    
    /**
     Create a query from the select, from, where, and order by component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param orderings The ordering components representing the ORDER BY clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from
                   where: (nullable CBLQueryExpression*)where
                 orderBy: (nullable NSArray<CBLQueryOrdering*>*)orderings;
    
    /**
     Create a distinct query from the select, from, where, and order by component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param orderings The ordering components representing the ORDER BY clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from
                           where: (nullable CBLQueryExpression*)where
                         orderBy: (nullable NSArray<CBLQueryOrdering*>*)orderings;
    
    // SELECT > FROM > WHERE > GROUP BY
    
    /**
     Create a query from the select, from, where, and group by component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from
                   where: (nullable CBLQueryExpression*)where
                 groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy;
    
    /**
     Create a distinct query from the select, from, where and group by component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from
                           where: (nullable CBLQueryExpression*)where
                         groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy;
    
    // SELECT > FROM > WHERE > GROUP BY > HAVING
    
    /**
     Create a query from the select, from, where, groupby and having component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @param having The having component representing the HAVING clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from
                   where: (nullable CBLQueryExpression*)where
                 groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy
                  having: (nullable CBLQueryExpression*)having;
    
    /**
     Create a distinct query from the select, from, where, groupby and having component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @param having The having component representing the HAVING clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from
                           where: (nullable CBLQueryExpression*)where
                         groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy
                          having: (nullable CBLQueryExpression*)having;
    
    // SELECT > FROM > WHERE > GROUP BY > HAVING > ORDER BY > LIMIT
    
    /**
     Create a query from the select, from, where, groupby, having, order by, and limit component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @param having The having component representing the HAVING clause of the query.
     @param orderings The ordering components representing the ORDER BY clause of the query.
     @param limit The limit component representing the LIMIT clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from
                   where: (nullable CBLQueryExpression*)where
                 groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy
                  having: (nullable CBLQueryExpression*)having
                 orderBy: (nullable NSArray<CBLQueryOrdering*>*)orderings
                   limit: (nullable CBLQueryLimit*)limit;
    
    /**
     Create a distinct query from the select, from, where, groupby, having, order by,
     and limit component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @param having The having component representing the HAVING clause of the query.
     @param orderings The ordering components representing the ORDER BY clause of the query.
     @param limit The limit component representing the LIMIT clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from
                           where: (nullable CBLQueryExpression*)where
                         groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy
                          having: (nullable CBLQueryExpression*)having
                         orderBy: (nullable NSArray<CBLQueryOrdering*>*)orderings
                           limit: (nullable CBLQueryLimit*)limit;
    
    // SELECT > FROM > JOIN
    
    /**
     Create a query from the select, from, and join component.
     
     @param select The select component reresenting the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from
                    join: (nullable NSArray<CBLQueryJoin*>*)join;
    
    /**
     Create a distinct query from the select from, and join component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from
                            join: (nullable NSArray<CBLQueryJoin*>*)join;
    
    // SELECT > FROM > JOIN > WHERE
    
    /**
     Create a query from the select, from, join and where component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from
                    join: (nullable NSArray<CBLQueryJoin*>*)join
                   where: (nullable CBLQueryExpression*)where;
    
    /**
     Create a distinct query from the select, from, join and where component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from
                            join: (nullable NSArray<CBLQueryJoin*>*)join
                           where: (nullable CBLQueryExpression*)where;
    
    // SELECT > FROM > JOIN > WHERE > GROUP BY
    
    /**
     Create a query from the select, from, join, where, and group by component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from
                    join: (nullable NSArray<CBLQueryJoin*>*)join
                   where: (nullable CBLQueryExpression*)where
                 groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy;
    
    
    /**
     Create a distinct query from the select, from, join, where, and groupby component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from
                            join: (nullable NSArray<CBLQueryJoin*>*)join
                           where: (nullable CBLQueryExpression*)where
                         groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy;
    
    // SELECT > FROM > JOIN > WHERE > GROUP BY > HAVING
    
    /**
     Create a query from the select, from, join, where, grop by, and having component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @param having The having component representing the HAVING clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from
                    join: (nullable NSArray<CBLQueryJoin*>*)join
                   where: (nullable CBLQueryExpression*)where
                 groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy
                  having: (nullable CBLQueryExpression*)having;
    
    
    /**
     Create a distinct query from the select, from, join, where, gropu by and having component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @param having The having component representing the HAVING clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from
                            join: (nullable NSArray<CBLQueryJoin*>*)join
                           where: (nullable CBLQueryExpression*)where
                         groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy
                          having: (nullable CBLQueryExpression*)having;
    
    // SELECT > FROM > JOIN > WHERE > ORDER BY
    
    /**
     Create a query from the select, from, join, where and order by component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param orderings The ordering components representing the ORDER BY clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from
                    join: (nullable NSArray<CBLQueryJoin*>*)join
                   where: (nullable CBLQueryExpression*)where
                 orderBy: (nullable NSArray<CBLQueryOrdering*>*)orderings;
    
    /**
     Create a distinct query from the select, from, join, where, and order by component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param orderings The ordering components representing the ORDER BY clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from
                            join: (nullable NSArray<CBLQueryJoin*>*)join
                           where: (nullable CBLQueryExpression*)where
                         orderBy: (nullable NSArray<CBLQueryOrdering*>*)orderings;
    
    // SELECT > FROM > JOIN > WHERE > GROUP BY > HAVING > ORDER BY > LIMIT
    
    /**
     Create a query from the select, from, join, where, group by, having, order by, and limit component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @param having The having component representing the HAVING clause of the query.
     @param orderings The orderings components representing the ORDER BY clause of the query.
     @param limit The limit component representing the LIMIT clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) select: (NSArray<CBLQuerySelectResult*>*)select
                    from: (CBLQueryDataSource*)from
                    join: (nullable NSArray<CBLQueryJoin*>*)join
                   where: (nullable CBLQueryExpression*)where
                 groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy
                  having: (nullable CBLQueryExpression*)having
                 orderBy: (nullable NSArray<CBLQueryOrdering*>*)orderings
                   limit: (nullable CBLQueryLimit*)limit;
    
    /**
     Create a distinct query from the select, from, join, where, group by, having, order by and
     limit component.
     
     @param select The select component representing the SELECT clause of the query.
     @param from The from component representing the FROM clause of the query.
     @param join The join components representing the JOIN clause of the query.
     @param where The where component representing the WHERE clause of the query.
     @param groupBy The group by expressions representing the GROUP BY clause of the query.
     @param having The having component representing the HAVING clause of the query.
     @param orderings The ordering components representing the ORDER BY clause of the query.
     @param limit The limit component representing the LIMIT clause of the query.
     @return The CBLQuery instance.
     */
    + (CBLQuery*) selectDistinct: (NSArray<CBLQuerySelectResult*>*)select
                            from: (CBLQueryDataSource*)from
                            join: (nullable NSArray<CBLQueryJoin*>*)join
                           where: (nullable CBLQueryExpression*)where
                         groupBy: (nullable NSArray<CBLQueryExpression*>*)groupBy
                          having: (nullable CBLQueryExpression*)having
                         orderBy: (nullable NSArray<CBLQueryOrdering*>*)orderings
                           limit: (nullable CBLQueryLimit*)limit;
    
    /** Not available */
    - (instancetype) init NS_UNAVAILABLE;
    
    @end
  • CBLQueryChange contains the information about the query result changes reported by a live query object.

    See more

    Declaration

    Objective-C

    @interface CBLQueryChange : NSObject
  • CBLQueryCollation defines how strings are compared and is used when creating a COLLATE expression. The COLLATE expression can be used in the WHERE clause when comparing two strings or in the ORDER BY clause when specifying how the order of the query results. CouchbaseLite provides two types of the Collation, ASCII and Unicode. Without specifying the COLLATE expression Couchbase Lite will use the ASCII with case sensitive collation by default.

    See more

    Declaration

    Objective-C

    @interface CBLQueryCollation : NSObject
  • A query data source. used for specifiying the data source for your query. The current data source supported is the database.

    See more

    Declaration

    Objective-C

    @interface CBLQueryDataSource : NSObject
  • A CBLQueryExpression represents an expression used for constructing a query statement.

    See more

    Declaration

    Objective-C

    @interface CBLQueryExpression : NSObject
  • Deprecated

    Use [CBLQueryFullTextFunction matchWithIndexName:query] instead.

    Full-text expression.

    See more

    Declaration

    Objective-C

    
    @interface CBLQueryFullTextExpression : NSObject
  • Full-text function.

    See more

    Declaration

    Objective-C

    @interface CBLQueryFullTextFunction : NSObject
  • CBLQueryFunction provides query functions.

    See more

    Declaration

    Objective-C

    @interface CBLQueryFunction : NSObject

Prediction

  • ENTERPRISE EDITION ONLY

    CBLQueryPredictionFunction that allows to create an expression that refers to one of the properties of the prediction result dictionary.

    See more

    Declaration

    Objective-C

    @interface CBLQueryPredictionFunction : CBLQueryExpression
  • CBLQueryIndex object representing an existing index in the collection.

    See more

    Declaration

    Objective-C

    @interface CBLQueryIndex : NSObject
  • A CBLQueryJoin represents the JOIN clause in the query statement.

    See more

    Declaration

    Objective-C

    @interface CBLQueryJoin : NSObject
  • A CBLQueryLimit represents a query LIMIT clause used for constrainting the number of results returned by a query.

    See more

    Declaration

    Objective-C

    @interface CBLQueryLimit : NSObject
  • CBLQueryMeta is a factory class for creating the expressions that refers to the metadata properties of the document.

    See more

    Declaration

    Objective-C

    @interface CBLQueryMeta : NSObject
  • A CBLQueryOrdering represents a single ordering component in the query ORDER BY clause.

    See more

    Declaration

    Objective-C

    @interface CBLQueryOrdering : NSObject
  • CBLQuerySortOrder allows to specify the ordering direction which is an ascending or a descending order

    See more

    Declaration

    Objective-C

    @interface CBLQuerySortOrder : CBLQueryOrdering
  • Query parameters used for setting values to the query parameters defined in the query.

    See more

    Declaration

    Objective-C

    @interface CBLQueryParameters : NSObject
  • CBLQueryResult represents a single row in the query result. The projecting result value can be accessed either by using a zero based index or by a key corresponding to the CBLQuerySelectResult objects given when constructing the CBLQuery object.

    A key used for accessing the projecting result value could be one of the followings:

    • The alias name of the CBLQuerySelectResult object.
    • The last component of the keypath or property name of the property expression used when creating the CBLQuerySelectResult object.
    • The provision key in $1, $2, …$N format for the CBLQuerySelectResult that doesn’t have an alias name specified or is not a property expression such as an aggregate function expression (e.g. count(), avg(), min(), max(), sum() and etc). The number suffix after the ‘$’ character is a running number starting from one.
    See more

    Declaration

    Objective-C

    @interface CBLQueryResult : NSObject <CBLArray, CBLDictionary>
  • CBLQueryResultSet is a result returned from a query. The CBLQueryResultSet is an NSEnumerator of the CBLQueryResult objects, each of which represent a single row in the query result.

    See more

    Declaration

    Objective-C

    @interface CBLQueryResultSet : NSEnumerator <CBLQueryResult *>
  • A CBLQuerySelectResult represents a returning value in each query result row.

    See more

    Declaration

    Objective-C

    @interface CBLQuerySelectResult : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface CBLQueryVariableExpression : CBLQueryExpression
  • Combined activity level and progress of a replicator.

    See more

    Declaration

    Objective-C

    @interface CBLReplicatorStatus : NSObject
  • A replicator for replicating document changes between a local database and a target database. The replicator can be bidirectional or either push or pull. The replicator can also be one-short or continuous. The replicator runs asynchronously, so observe the status property to be notified of progress.

    See more

    Declaration

    Objective-C

    @interface CBLReplicator : NSObject
  • Replicator status change details.

    See more

    Declaration

    Objective-C

    @interface CBLReplicatorChange : NSObject
  • Replicator Configuration

    See more

    Declaration

    Objective-C

    @interface CBLReplicatorConfiguration : NSObject
  • A CBLScope represents a scope or namespace of the collections.

    The scope implicitly exists when there is at least one collection created under the scope. The default scope is exceptional in that it will always exists even there are no collections under it.

    CBLScope Lifespan A CBLScope object remain valid until either the database is closed or the scope itself is invalidated as all collections in the scope have been deleted.

    See more

    Declaration

    Objective-C

    @interface CBLScope : NSObject
  • The CBLSessionAuthenticator class is an authenticator that will authenticate by using the session ID of the session created by a Sync Gateway.

    See more

    Declaration

    Objective-C

    @interface CBLSessionAuthenticator : CBLAuthenticator
  • ENTERPRISE EDITION ONLY.

    CBLTLSIdentity provides TLS Identity information including a key pair and X.509 certificate chain used for configuring TLS communication to the listener.

    See more

    Declaration

    Objective-C

    @interface CBLTLSIdentity : NSObject
  • URL based replication target endpoint.

    See more

    Declaration

    Objective-C

    @interface CBLURLEndpoint : NSObject <CBLEndpoint>
  • ENTERPRISE EDITION ONLY.

    A listener to provide websocket based endpoint for peer-to-peer replication. Once the listener is started, peer replicators can connect to the listener by using CBLURLEndpoint.

    See more

    Declaration

    Objective-C

    @interface CBLURLEndpointListener : NSObject
  • ENTERPRISE EDITION ONLY.

    The configuration used for configuring and creating a URLEndpointListener.

    See more

    Declaration

    Objective-C

    @interface CBLURLEndpointListenerConfiguration : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface CBLValueIndex : CBLIndex
  • Value Index Item.

    See more

    Declaration

    Objective-C

    @interface CBLValueIndexItem : NSObject
  • Configuration for creating value indexes.

    See more

    Declaration

    Objective-C

    @interface CBLValueIndexConfiguration : CBLIndexConfiguration
  • ENTERPRISE EDITION ONLY

    Vector encoding type to use in vector indexes.

    See more

    Declaration

    Objective-C

    @interface CBLVectorEncoding : NSObject
  • ENTERPRISE EDITION ONLY

    Configuration for creating vector indexes.

    See more

    Declaration

    Objective-C

    @interface CBLVectorIndexConfiguration : CBLIndexConfiguration