1# @ohos.data.dataSharePredicates (数据共享谓词) 2 3**谓词(DataSharePredicates)** 是开发者通过DataShare查询数据库中的数据所使用的筛选条件,经常被应用在更新数据([update](js-apis-data-dataShare.md#update))、删除数据([delete](js-apis-data-dataShare.md#delete))和查询数据([query](js-apis-data-dataShare.md#query))中。 4 5谓词的接口函数与数据库的筛选条件一一对应,开发者在使用前需了解数据库相关知识。 6 7> **说明:** 8> 9> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 10> 11> 本模块接口为系统接口。 12 13 14## 导入模块 15 16```ts 17import dataSharePredicates from '@ohos.data.dataSharePredicates'; 18``` 19 20## DataSharePredicates 21提供用于不同实现不同查询方法的数据共享谓词。 22 23### equalTo 24 25equalTo(field: string, value: ValueType): DataSharePredicates 26 27该接口用于配置谓词以匹配值等于指定值的字段。 28 29目前仅RDB及KVDB(schema)支持该谓词。 30 31**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 32 33**参数:** 34 35| 参数名 | 类型 | 必填 | 说明 | 36| ------ | --------------------------------------------------- | ---- | ---------------------- | 37| field | string | 是 | 数据库表中的列名。 | 38| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 | 39 40**返回值:** 41 42| 类型 | 说明 | 43| ------------------------------------------- | -------------------------- | 44| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 45 46**示例:** 47 48```ts 49let predicates = new dataSharePredicates.DataSharePredicates() 50predicates.equalTo("NAME", "Rose") 51``` 52 53### notEqualTo 54 55notEqualTo(field: string, value: ValueType): DataSharePredicates 56 57该接口用于配置谓词以匹配值不等于指定值的字段。 58 59目前仅RDB及KVDB(schema)支持该谓词。 60 61**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 62 63**参数:** 64 65| 参数名 | 类型 | 必填 | 说明 | 66| ------ | --------------------------------------------------- | ---- | ---------------------- | 67| field | string | 是 | 数据库表中的列名。 | 68| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 | 69 70**返回值:** 71 72| 类型 | 说明 | 73| ------------------------------------------- | -------------------------- | 74| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 75 76**示例:** 77 78```ts 79let predicates = new dataSharePredicates.DataSharePredicates() 80predicates.notEqualTo("NAME", "Rose") 81``` 82 83### beginWrap 84 85beginWrap(): DataSharePredicates 86 87该接口用于向谓词添加左括号。 88 89目前仅RDB支持该谓词。 90 91**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 92 93**返回值:** 94 95| 类型 | 说明 | 96| ------------------------------------------- | ---------------------- | 97| [DataSharePredicates](#datasharepredicates) | 返回带有左括号的谓词。 | 98 99**示例:** 100 101```ts 102let predicates = new dataSharePredicates.DataSharePredicates() 103predicates.equalTo("NAME", "lisi") 104 .beginWrap() 105 .equalTo("AGE", 18) 106 .or() 107 .equalTo("SALARY", 200.5) 108 .endWrap() 109``` 110 111### endWrap 112 113endWrap(): DataSharePredicates 114 115该接口用于向谓词添加右括号。 116 117目前仅RDB支持该谓词。 118 119**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 120 121**返回值:** 122 123| 类型 | 说明 | 124| ------------------------------------------- | ---------------------- | 125| [DataSharePredicates](#datasharepredicates) | 返回带有右括号的谓词。 | 126 127**示例:** 128 129```ts 130let predicates = new dataSharePredicates.DataSharePredicates() 131predicates.equalTo("NAME", "lisi") 132 .beginWrap() 133 .equalTo("AGE", 18) 134 .or() 135 .equalTo("SALARY", 200.5) 136 .endWrap() 137``` 138 139### or 140 141or(): DataSharePredicates 142 143该接口用于将或条件添加到谓词中。 144 145目前仅RDB及KVDB(schema)支持该谓词。 146 147**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 148 149**返回值:** 150 151| 类型 | 说明 | 152| ------------------------------------------- | ---------------------- | 153| [DataSharePredicates](#datasharepredicates) | 返回带有或条件的谓词。 | 154 155**示例:** 156 157```ts 158let predicates = new dataSharePredicates.DataSharePredicates() 159predicates.equalTo("NAME", "lisi") 160 .or() 161 .equalTo("NAME", "Rose") 162``` 163 164### and 165 166and(): DataSharePredicates 167 168该接口用于将和条件添加到谓词中。 169 170目前仅RDB及KVDB(schema)支持该谓词。 171 172**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 173 174**返回值:** 175 176| 类型 | 说明 | 177| ------------------------------------------- | ---------------------- | 178| [DataSharePredicates](#datasharepredicates) | 返回带有和条件的谓词。 | 179 180**示例:** 181 182```ts 183let predicates = new dataSharePredicates.DataSharePredicates() 184predicates.equalTo("NAME", "lisi") 185 .and() 186 .equalTo("SALARY", 200.5) 187``` 188 189### contains 190 191contains(field: string, value: string): DataSharePredicates 192 193该接口用于配置谓词以匹配值包含指定字段的字段。 194 195目前仅RDB支持该谓词。 196 197**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 198 199**参数:** 200 201| 参数名 | 类型 | 必填 | 说明 | 202| ------ | ------ | ---- | -------------------- | 203| field | string | 是 | 数据库表中的列名。 | 204| value | string | 是 | 指示值中包含该字段。 | 205 206**返回值:** 207 208| 类型 | 说明 | 209| ------------------------------------------- | -------------------------- | 210| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 211 212**示例:** 213 214```ts 215let predicates = new dataSharePredicates.DataSharePredicates() 216predicates.contains("NAME", "os") 217``` 218 219### beginsWith 220 221beginsWith(field: string, value: string): DataSharePredicates 222 223该接口用于配置谓词以匹配值以指定字符串起始的字段。 224 225目前仅RDB支持该谓词。 226 227**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 228 229**参数:** 230 231| 参数名 | 类型 | 必填 | 说明 | 232| ------ | ------ | ---- | ---------------------- | 233| field | string | 是 | 数据库表中的列名。 | 234| value | string | 是 | 指示值以该字符串起始。 | 235 236**返回值:** 237 238| 类型 | 说明 | 239| ------------------------------------------- | -------------------------- | 240| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 241 242**示例:** 243 244```ts 245let predicates = new dataSharePredicates.DataSharePredicates() 246predicates.beginsWith("NAME", "os") 247``` 248 249### endsWith 250 251endsWith(field: string, value: string): DataSharePredicates 252 253该接口用于配置谓词以匹配值以指定字符串结尾的字段。 254 255目前仅RDB支持该谓词。 256 257**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 258 259**参数:** 260 261| 参数名 | 类型 | 必填 | 说明 | 262| ------ | ------ | ---- | ---------------------- | 263| field | string | 是 | 数据库表中的列名。 | 264| value | string | 是 | 指示值以该字符串结尾。 | 265 266**返回值:** 267 268| 类型 | 说明 | 269| ------------------------------------------- | -------------------------- | 270| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 271 272**示例:** 273 274```ts 275let predicates = new dataSharePredicates.DataSharePredicates() 276predicates.endsWith("NAME", "os") 277``` 278 279### isNull 280 281isNull(field: string): DataSharePredicates 282 283该接口用于配置谓词以匹配值为null的字段。 284 285目前仅RDB及KVDB(schema)支持该谓词。 286 287**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 288 289**参数:** 290 291| 参数名 | 类型 | 必填 | 说明 | 292| ------ | ------ | ---- | ------------------ | 293| field | string | 是 | 数据库表中的列名。 | 294 295**返回值:** 296 297| 类型 | 说明 | 298| ------------------------------------------- | -------------------------- | 299| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 300 301**示例:** 302 303```ts 304let predicates = new dataSharePredicates.DataSharePredicates() 305predicates.isNull("NAME") 306``` 307 308### isNotNull 309 310isNotNull(field: string): DataSharePredicates 311 312该接口用于配置谓词以匹配值不为null的字段。 313 314目前仅RDB及KVDB(schema)支持该谓词。 315 316**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 317 318**参数:** 319 320| 参数名 | 类型 | 必填 | 说明 | 321| ------ | ------ | ---- | ------------------ | 322| field | string | 是 | 数据库表中的列名。 | 323 324**返回值:** 325 326| 类型 | 说明 | 327| ------------------------------------------- | -------------------------- | 328| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 329 330**示例:** 331 332```ts 333let predicates = new dataSharePredicates.DataSharePredicates() 334predicates.isNotNull("NAME") 335``` 336 337### like 338 339like(field: string, value: string): DataSharePredicates 340 341该接口用于配置谓词以匹配指定通配符表达式的字段。 342 343目前仅RDB及KVDB(schema)支持该谓词。 344 345**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 346 347**参数:** 348 349| 参数名 | 类型 | 必填 | 说明 | 350| ------ | ------ | ---- | ---------------------- | 351| field | string | 是 | 数据库表中的列名。 | 352| value | string | 是 | 指示要与谓词匹配的通配符表达式。 <br>表达式中'%'代表零个、一个或多个数字或字符,'_'代表一个单一的数字或字符,不区分大小写。| 353 354**返回值:** 355 356| 类型 | 说明 | 357| ------------------------------------------- | -------------------------- | 358| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 359 360**示例:** 361 362```ts 363let predicates = new dataSharePredicates.DataSharePredicates() 364predicates.like("NAME", "%os%") 365``` 366 367### unlike 368 369unlike(field: string, value: string): DataSharePredicates 370 371该接口用于配置谓词以匹配不类似指定通配符表达式的字段。 372 373目前仅RDB及KVDB(schema)支持该谓词。 374 375**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 376 377**参数:** 378 379| 参数名 | 类型 | 必填 | 说明 | 380| ------ | ------ | ---- | ---------------------- | 381| field | string | 是 | 数据库表中的列名。 | 382| value | string | 是 | 指示要与谓词匹配的通配符表达式。<br>表达式中'%'代表零个、一个或多个数字或字符,'_'代表一个单一的数字或字符,不区分大小写。 | 383 384**返回值:** 385 386| 类型 | 说明 | 387| ------------------------------------------- | -------------------------- | 388| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 389 390**示例:** 391 392```ts 393let predicates = new dataSharePredicates.DataSharePredicates() 394predicates.unlike("NAME", "%os%") 395``` 396 397### glob 398 399glob(field: string, value: string): DataSharePredicates 400 401该接口用于配置谓词以匹配指定通配符表达式的字段。 402 403目前仅RDB支持该谓词。 404 405**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 406 407**参数:** 408 409| 参数名 | 类型 | 必填 | 说明 | 410| ------ | ------ | ---- | ---------------------- | 411| field | string | 是 | 数据库表中的列名。 | 412| value | string | 是 | 指示要与谓词匹配的通配符表达式。<br>表达式中'*'代表零个、一个或多个数字或字符,'?'代表一个单一的数字或字符,区分大小写。| 413 414**返回值:** 415 416| 类型 | 说明 | 417| ------------------------------------------- | -------------------------- | 418| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 419 420**示例:** 421 422```ts 423let predicates = new dataSharePredicates.DataSharePredicates() 424predicates.glob("NAME", "?h*g") 425``` 426 427### between 428 429between(field: string, low: ValueType, high: ValueType): DataSharePredicates 430 431该接口用于配置谓词以匹配值在指定范围内的字段。包含两端边界值,为左闭右闭区间。 432 433目前仅RDB支持该谓词。 434 435**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 436 437**参数:** 438 439| 参数名 | 类型 | 必填 | 说明 | 440| ------ | --------------------------------------------------- | ---- | ------------------------ | 441| field | string | 是 | 数据库表中的列名。 | 442| low | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示与谓词匹配的最小值。 | 443| high | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示与谓词匹配的最大值。 | 444 445**返回值:** 446 447| 类型 | 说明 | 448| ------------------------------------------- | -------------------------- | 449| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 450 451**示例:** 452 453```ts 454let predicates = new dataSharePredicates.DataSharePredicates() 455predicates.between("AGE", 10, 50) 456``` 457 458### notBetween 459 460notBetween(field: string, low: ValueType, high: ValueType): DataSharePredicates 461 462该接口用于配置谓词以匹配值超出指定范围的字段。不包含两端边界值,为左开右开区间。 463 464目前仅RDB支持该谓词。 465 466**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 467 468**参数:** 469 470| 参数名 | 类型 | 必填 | 说明 | 471| ------ | --------------------------------------------------- | ---- | ------------------------ | 472| field | string | 是 | 数据库表中的列名。 | 473| low | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示与谓词匹配的最小值。 | 474| high | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示与谓词匹配的最大值。 | 475 476**返回值:** 477 478| 类型 | 说明 | 479| ------------------------------------------- | -------------------------- | 480| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 481 482**示例:** 483 484```ts 485let predicates = new dataSharePredicates.DataSharePredicates() 486predicates.notBetween("AGE", 10, 50) 487``` 488 489### greaterThan 490 491greaterThan(field: string, value: ValueType): DataSharePredicates 492 493该接口用于配置谓词以匹配值大于指定值的字段。 494 495目前仅RDB及KVDB(schema)支持该谓词。 496 497**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 498 499**参数:** 500 501| 参数名 | 类型 | 必填 | 说明 | 502| ------- | --------- | ---- | ---------------------- | 503| field | string | 是 | 数据库表中的列名。 | 504| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 | 505 506**返回值:** 507 508| 类型 | 说明 | 509| ------------------------------------------- | -------------------------- | 510| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 511 512**示例:** 513 514```ts 515let predicates = new dataSharePredicates.DataSharePredicates() 516predicates.greaterThan("AGE", 10) 517``` 518 519### lessThan 520 521lessThan(field: string, value: ValueType): DataSharePredicates 522 523该接口用于配置谓词以匹配值小于指定值的字段。 524 525目前仅RDB及KVDB(schema)支持该谓词。 526 527**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 528 529**参数:** 530 531| 参数名 | 类型 | 必填 | 说明 | 532| ------ | --------------------------------------------------- | ---- | ---------------------- | 533| field | string | 是 | 数据库表中的列名。 | 534| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 | 535 536**返回值:** 537 538| 类型 | 说明 | 539| ------------------------------------------- | -------------------------- | 540| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 541 542**示例:** 543 544```ts 545let predicates = new dataSharePredicates.DataSharePredicates() 546predicates.lessThan("AGE", 50) 547``` 548 549### greaterThanOrEqualTo 550 551greaterThanOrEqualTo(field: string, value: ValueType): DataSharePredicates 552 553该接口用于配置谓词以匹配值大于或等于指定值的字段。 554 555目前仅RDB及KVDB(schema)支持该谓词。 556 557**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 558 559**参数:** 560 561| 参数名 | 类型 | 必填 | 说明 | 562| ------- | --------- | ---- | ---------------------- | 563| field | string | 是 | 数据库表中的列名。 | 564| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 | 565 566**返回值:** 567 568| 类型 | 说明 | 569| ------------------------------------------- | -------------------------- | 570| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 571 572**示例:** 573 574```ts 575let predicates = new dataSharePredicates.DataSharePredicates() 576predicates.greaterThanOrEqualTo("AGE", 10) 577``` 578 579### lessThanOrEqualTo 580 581lessThanOrEqualTo(field: string, value: ValueType): DataSharePredicates 582 583该接口用于配置谓词以匹配值小于或等于指定值的字段。 584 585目前仅RDB及KVDB(schema)支持该谓词。 586 587**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 588 589**参数:** 590 591| 参数名 | 类型 | 必填 | 说明 | 592| ------- | --------- | ---- | ---------------------- | 593| field | string | 是 | 数据库表中的列名。 | 594| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 | 595 596**返回值:** 597 598| 类型 | 说明 | 599| ------------------------------------------- | -------------------------- | 600| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 601 602**示例:** 603 604```ts 605let predicates = new dataSharePredicates.DataSharePredicates() 606predicates.lessThanOrEqualTo("AGE", 50) 607``` 608 609### orderByAsc 610 611orderByAsc(field: string): DataSharePredicates 612 613该接口用于配置谓词以匹配其值按升序排序的列。 614 615目前仅RDB及KVDB(schema)支持该谓词。 616 617**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 618 619**参数:** 620 621| 参数名 | 类型 | 必填 | 说明 | 622| ------ | ------ | ---- | ------------------ | 623| field | string | 是 | 数据库表中的列名。 | 624 625**返回值:** 626 627| 类型 | 说明 | 628| ------------------------------------------- | -------------------------- | 629| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 630 631**示例:** 632 633```ts 634let predicates = new dataSharePredicates.DataSharePredicates() 635predicates.orderByAsc("AGE") 636``` 637 638### orderByDesc 639 640orderByDesc(field: string): DataSharePredicates 641 642该接口用于配置谓词以匹配其值按降序排序的列。 643 644目前仅RDB及KVDB(schema)支持该谓词。 645 646**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 647 648**参数:** 649 650| 参数名 | 类型 | 必填 | 说明 | 651| ------ | ------ | ---- | ------------------ | 652| field | string | 是 | 数据库表中的列名。 | 653 654**返回值:** 655 656| 类型 | 说明 | 657| ------------------------------------------- | -------------------------- | 658| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 659 660**示例:** 661 662```ts 663let predicates = new dataSharePredicates.DataSharePredicates() 664predicates.orderByDesc("AGE") 665``` 666 667### distinct 668 669distinct(): DataSharePredicates 670 671该接口用于配置谓词以过滤重复记录并仅保留其中一个。 672 673目前仅RDB支持该谓词。 674 675**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 676 677**返回值:** 678 679| 类型 | 说明 | 680| ------------------------------------------- | -------------------------- | 681| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 682 683**示例:** 684 685```ts 686let predicates = new dataSharePredicates.DataSharePredicates() 687predicates.equalTo("NAME", "Rose").distinct() 688``` 689 690### limit 691 692limit(total: number, offset: number): DataSharePredicates 693 694该接口用于配置谓词以指定结果数和起始位置。 695 696目前仅RDB及KVDB(schema)支持该谓词。 697 698**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 699 700**参数:** 701 702| 参数名 | 类型 | 必填 | 说明 | 703| -------- | ------ | ---- | -------------- | 704| total | number | 是 | 指定结果数。 | 705| offset | number | 是 | 指示起始位置。 | 706 707**返回值:** 708 709| 类型 | 说明 | 710| ------------------------------------------- | -------------------------- | 711| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 712 713**示例:** 714 715```ts 716let predicates = new dataSharePredicates.DataSharePredicates() 717predicates.equalTo("NAME", "Rose").limit(10, 3) 718``` 719 720### groupBy 721 722groupBy(fields: Array<string>): DataSharePredicates 723 724该接口用于配置谓词按指定列分组查询结果。 725 726目前仅RDB支持该谓词。 727 728**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 729 730**参数:** 731 732| 参数名 | 类型 | 必填 | 说明 | 733| ------ | ------------- | ---- | -------------------- | 734| fields | Array<string> | 是 | 指定分组依赖的列名。 | 735 736**返回值:** 737 738| 类型 | 说明 | 739| ------------------------------------------- | -------------------------- | 740| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 741 742**示例:** 743 744```ts 745let predicates = new dataSharePredicates.DataSharePredicates() 746predicates.groupBy(["AGE", "NAME"]) 747``` 748 749### indexedBy 750 751indexedBy(field: string): DataSharePredicates 752 753该接口用于配置谓词按指定索引列查询结果。 754 755目前仅RDB支持该谓词。 756 757**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 758 759**参数:** 760 761| 参数名 | 类型 | 必填 | 说明 | 762| ------ | ------ | ---- | -------------- | 763| field | string | 是 | 索引列的名称。 | 764 765**返回值:** 766 767| 类型 | 说明 | 768| ------------------------------------------- | -------------------------- | 769| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 770 771**示例:** 772 773```ts 774let predicates = new dataSharePredicates.DataSharePredicates() 775predicates.indexedBy("SALARY_INDEX") 776``` 777 778### in 779 780in(field: string, value: Array<ValueType>): DataSharePredicates 781 782该接口用于配置谓词以匹配值在指范围内的字段。 783 784目前仅RDB及KVDB(schema)支持该谓词。 785 786**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 787 788**参数:** 789 790| 参数名 | 类型 | 必填 | 说明 | 791| ------- | ---------------- | ---- | --------------------------------------- | 792| field | string | 是 | 数据库表中的列名。 | 793| value | Array<[ValueType](js-apis-data-valuesBucket.md#valuetype)> | 是 | 以ValueType型数组形式指定的要匹配的值。 | 794 795**返回值:** 796 797| 类型 | 说明 | 798| ------------------------------------------- | -------------------------- | 799| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 800 801**示例:** 802 803```ts 804let predicates = new dataSharePredicates.DataSharePredicates() 805predicates.in("AGE", [18, 20]) 806``` 807 808### notIn 809 810notIn(field: string, value: Array<ValueType>): DataSharePredicates 811 812该接口用于配置谓词以匹配值不在指定范围内的字段。 813 814目前仅RDB及KVDB(schema)支持该谓词。 815 816**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 817 818**参数:** 819 820| 参数名 | 类型 | 必填 | 说明 | 821| ------- | ---------------- | ---- | --------------------------------------- | 822| field | string | 是 | 数据库表中的列名。 | 823| value | Array<[ValueType](js-apis-data-valuesBucket.md#valuetype)> | 是 | 以ValueType型数组形式指定的要匹配的值。 | 824 825**返回值:** 826 827| 类型 | 说明 | 828| ------------------------------------------- | -------------------------- | 829| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 830 831**示例:** 832 833```ts 834let predicates = new dataSharePredicates.DataSharePredicates() 835predicates.notIn("NAME", ["Lisa", "Rose"]) 836``` 837 838### prefixKey 839 840prefixKey(prefix: string): DataSharePredicates 841 842该接口用于配置谓词以匹配键前缀的指定字段。 843 844目前仅KVDB支持该谓词。 845 846**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 847 848**参数:** 849 850| 参数名 | 类型 | 必填 | 说明 | 851| ------ | ------ | ---- | -------------- | 852| prefix | string | 是 | 指定的键前缀。 | 853 854**返回值:** 855 856| 类型 | 说明 | 857| ------------------------------------------- | -------------------------- | 858| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 859 860**示例:** 861 862```ts 863let predicates = new dataSharePredicates.DataSharePredicates() 864predicates.prefixKey("NAME") 865``` 866 867### inKeys 868 869inKeys(keys: Array<string>): DataSharePredicates 870 871该接口用于配置谓词以匹配键在指定范围内的字段。 872 873目前仅KVDB支持该谓词。 874 875**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 876 877**参数:** 878 879| 参数名 | 类型 | 必填 | 说明 | 880| ------ | ------------- | ---- | ------------------ | 881| inKeys | Array<string> | 是 | 指定范围的键数组。 | 882 883**返回值:** 884 885| 类型 | 说明 | 886| ------------------------------------------- | -------------------------- | 887| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 888 889**示例:** 890 891```ts 892let predicates = new dataSharePredicates.DataSharePredicates() 893predicates.inKeys(["Lisa", "Rose"]) 894```