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