# @ohos.data.dataSharePredicates (数据共享谓词)
**谓词(DataSharePredicates)** 是开发者通过DataShare查询数据库中的数据所使用的筛选条件,经常被应用在更新数据([update](js-apis-data-dataShare.md#update))、删除数据([delete](js-apis-data-dataShare.md#delete))和查询数据([query](js-apis-data-dataShare.md#query))中。
谓词的接口函数与数据库的筛选条件一一对应,开发者在使用前需了解数据库相关知识。
> **说明:**
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```ts
import dataSharePredicates from '@ohos.data.dataSharePredicates';
```
## DataSharePredicates
提供用于不同实现不同查询方法的数据共享谓词。该类型不是多线程安全的,如果应用中存在多线程同时操作该类派生出的实例,注意加锁保护。
### equalTo
equalTo(field: string, value: ValueType): DataSharePredicates
该接口用于配置谓词以匹配值等于指定值的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | --------------------------------------------------- | ---- | ---------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.equalTo("NAME", "Rose")
```
### notEqualTo
notEqualTo(field: string, value: ValueType): DataSharePredicates
该接口用于配置谓词以匹配值不等于指定值的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | --------------------------------------------------- | ---- | ---------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.notEqualTo("NAME", "Rose")
```
### beginWrap
beginWrap(): DataSharePredicates
该接口用于向谓词添加左括号。
目前仅RDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | ---------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回带有左括号的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.equalTo("NAME", "lisi")
.beginWrap()
.equalTo("AGE", 18)
.or()
.equalTo("SALARY", 200.5)
.endWrap()
```
### endWrap
endWrap(): DataSharePredicates
该接口用于向谓词添加右括号。
目前仅RDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | ---------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回带有右括号的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.equalTo("NAME", "lisi")
.beginWrap()
.equalTo("AGE", 18)
.or()
.equalTo("SALARY", 200.5)
.endWrap()
```
### or
or(): DataSharePredicates
该接口用于将或条件添加到谓词中。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | ---------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回带有或条件的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.equalTo("NAME", "lisi")
.or()
.equalTo("NAME", "Rose")
```
### and
and(): DataSharePredicates
该接口用于将和条件添加到谓词中。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | ---------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回带有和条件的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.equalTo("NAME", "lisi")
.and()
.equalTo("SALARY", 200.5)
```
### contains
contains(field: string, value: string): DataSharePredicates
该接口用于配置谓词以匹配值包含指定字段的字段。
目前仅RDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示值中包含该字段。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.contains("NAME", "os")
```
### beginsWith
beginsWith(field: string, value: string): DataSharePredicates
该接口用于配置谓词以匹配值以指定字符串起始的字段。
目前仅RDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示值以该字符串起始。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.beginsWith("NAME", "os")
```
### endsWith
endsWith(field: string, value: string): DataSharePredicates
该接口用于配置谓词以匹配值以指定字符串结尾的字段。
目前仅RDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示值以该字符串结尾。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.endsWith("NAME", "os")
```
### isNull
isNull(field: string): DataSharePredicates
该接口用于配置谓词以匹配值为null的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------ |
| field | string | 是 | 数据库表中的列名。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.isNull("NAME")
```
### isNotNull
isNotNull(field: string): DataSharePredicates
该接口用于配置谓词以匹配值不为null的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------ |
| field | string | 是 | 数据库表中的列名。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.isNotNull("NAME")
```
### like
like(field: string, value: string): DataSharePredicates
该接口用于配置谓词以匹配指定通配符表达式的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的通配符表达式。
表达式中'%'代表零个、一个或多个数字或字符,'_'代表一个单一的数字或字符,不区分大小写。|
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.like("NAME", "%os%")
```
### unlike
unlike(field: string, value: string): DataSharePredicates
该接口用于配置谓词以匹配不类似指定通配符表达式的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的通配符表达式。
表达式中'%'代表零个、一个或多个数字或字符,'_'代表一个单一的数字或字符,不区分大小写。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.unlike("NAME", "%os%")
```
### glob
glob(field: string, value: string): DataSharePredicates
该接口用于配置谓词以匹配指定通配符表达式的字段。
目前仅RDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | string | 是 | 指示要与谓词匹配的通配符表达式。
表达式中'*'代表零个、一个或多个数字或字符,'?'代表一个单一的数字或字符,区分大小写。|
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.glob("NAME", "?h*g")
```
### between
between(field: string, low: ValueType, high: ValueType): DataSharePredicates
该接口用于配置谓词以匹配值在指定范围内的字段。包含两端边界值,为左闭右闭区间。
目前仅RDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | --------------------------------------------------- | ---- | ------------------------ |
| field | string | 是 | 数据库表中的列名。 |
| low | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示与谓词匹配的最小值。 |
| high | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示与谓词匹配的最大值。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.between("AGE", 10, 50)
```
### notBetween
notBetween(field: string, low: ValueType, high: ValueType): DataSharePredicates
该接口用于配置谓词以匹配值超出指定范围的字段。不包含两端边界值,为左开右开区间。
目前仅RDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | --------------------------------------------------- | ---- | ------------------------ |
| field | string | 是 | 数据库表中的列名。 |
| low | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示与谓词匹配的最小值。 |
| high | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示与谓词匹配的最大值。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.notBetween("AGE", 10, 50)
```
### greaterThan
greaterThan(field: string, value: ValueType): DataSharePredicates
该接口用于配置谓词以匹配值大于指定值的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | --------- | ---- | ---------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.greaterThan("AGE", 10)
```
### lessThan
lessThan(field: string, value: ValueType): DataSharePredicates
该接口用于配置谓词以匹配值小于指定值的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | --------------------------------------------------- | ---- | ---------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.lessThan("AGE", 50)
```
### greaterThanOrEqualTo
greaterThanOrEqualTo(field: string, value: ValueType): DataSharePredicates
该接口用于配置谓词以匹配值大于或等于指定值的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | --------- | ---- | ---------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.greaterThanOrEqualTo("AGE", 10)
```
### lessThanOrEqualTo
lessThanOrEqualTo(field: string, value: ValueType): DataSharePredicates
该接口用于配置谓词以匹配值小于或等于指定值的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | --------- | ---- | ---------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.lessThanOrEqualTo("AGE", 50)
```
### orderByAsc
orderByAsc(field: string): DataSharePredicates
该接口用于配置谓词以匹配其值按升序排序的列。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------ |
| field | string | 是 | 数据库表中的列名。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.orderByAsc("AGE")
```
### orderByDesc
orderByDesc(field: string): DataSharePredicates
该接口用于配置谓词以匹配其值按降序排序的列。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ------------------ |
| field | string | 是 | 数据库表中的列名。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.orderByDesc("AGE")
```
### distinct
distinct(): DataSharePredicates
该接口用于配置谓词以过滤重复记录并仅保留其中一个。
目前仅RDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.equalTo("NAME", "Rose").distinct()
```
### limit
limit(total: number, offset: number): DataSharePredicates
该接口用于配置谓词以指定结果数和起始位置。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | -------------- |
| total | number | 是 | 指定结果数。 |
| offset | number | 是 | 指示起始位置。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.equalTo("NAME", "Rose").limit(10, 3)
```
### groupBy
groupBy(fields: Array<string>): DataSharePredicates
该接口用于配置谓词按指定列分组查询结果。
目前仅RDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------- | ---- | -------------------- |
| fields | Array<string> | 是 | 指定分组依赖的列名。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.groupBy(["AGE", "NAME"])
```
### indexedBy
indexedBy(field: string): DataSharePredicates
该接口用于配置谓词按指定索引列查询结果。
目前仅RDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------- |
| field | string | 是 | 索引列的名称。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.indexedBy("SALARY_INDEX")
```
### in
in(field: string, value: Array<ValueType>): DataSharePredicates
该接口用于配置谓词以匹配值在指范围内的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------- | ---- | --------------------------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | Array<[ValueType](js-apis-data-valuesBucket.md#valuetype)> | 是 | 以ValueType型数组形式指定的要匹配的值。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.in("AGE", [18, 20])
```
### notIn
notIn(field: string, value: Array<ValueType>): DataSharePredicates
该接口用于配置谓词以匹配值不在指定范围内的字段。
目前仅RDB及KVDB(schema)支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------- | ---- | --------------------------------------- |
| field | string | 是 | 数据库表中的列名。 |
| value | Array<[ValueType](js-apis-data-valuesBucket.md#valuetype)> | 是 | 以ValueType型数组形式指定的要匹配的值。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.notIn("NAME", ["Lisa", "Rose"])
```
### prefixKey
prefixKey(prefix: string): DataSharePredicates
该接口用于配置谓词以匹配键前缀的指定字段。
目前仅KVDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | -------------- |
| prefix | string | 是 | 指定的键前缀。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.prefixKey("NAME")
```
### inKeys
inKeys(keys: Array<string>): DataSharePredicates
该接口用于配置谓词以匹配键在指定范围内的字段。
目前仅KVDB支持该谓词。
**系统接口:** 此接口为系统接口。
**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------------- | ---- | ------------------ |
| inKeys | Array<string> | 是 | 指定范围的键数组。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 |
**示例:**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.inKeys(["Lisa", "Rose"])
```