1# @ohos.data.dataAbility (DataAbility Predicates) 2 3The **DataAbility** module provides APIs to create predicates for querying data from relational database (RDB) stores. 4 5> **NOTE** 6> 7> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. 8 9 10## Modules to Import 11 12```js 13import { dataAbility } from '@kit.ArkData'; 14``` 15 16## dataAbility.createRdbPredicates 17 18createRdbPredicates(name: string, dataAbilityPredicates: DataAbilityPredicates): rdb.RdbPredicates 19 20Creates an **RdbPredicates** object with a table name and **DataAbilityPredicates** object. 21 22**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 23 24**Parameters** 25 26| Name| Type| Mandatory| Description| 27| -------- | -------- | -------- | -------- | 28| name | string | Yes| Name of a database table.| 29| dataAbilityPredicates | [DataAbilityPredicates](#dataabilitypredicates) | Yes| **DataAbilityPredicates** object. | 30 31**Return value** 32 33| Type| Description| 34| -------- | -------- | 35| rdb.[RdbPredicates](js-apis-data-rdb.md#rdbpredicates) | **RdbPredicates** object created.| 36 37**Example** 38 39 ```js 40 let dataAbilityPredicates = new dataAbility.DataAbilityPredicates() 41 dataAbilityPredicates.equalTo("NAME", "Rose") 42 // EMPLOYEE is a table created in an RDB store. 43 let predicates = dataAbility.createRdbPredicates("EMPLOYEE", dataAbilityPredicates) 44 ``` 45 46## DataAbilityPredicates 47 48Provides APIs for creating diverse query conditions. 49 50**Initialization** 51 52 ```js 53 let dataAbilityPredicates = new dataAbility.DataAbilityPredicates() 54 ``` 55 56### equalTo 57 58equalTo(field: string, value: ValueType): DataAbilityPredicates 59 60Creates a **DataAbilityPredicates** object to search for the records in the specified column that are equal to the given value. 61 62This API is similar to the SQL equal to (=) operator. 63 64**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 65 66**Parameters** 67 68| Name| Type| Mandatory| Description| 69| -------- | -------- | -------- | -------- | 70| field | string | Yes| Column name in the table.| 71| value | [ValueType](#valuetype) | Yes| Value to match.| 72 73**Return value** 74 75| Type| Description| 76| -------- | -------- | 77| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 78 79**Example** 80 81 ```js 82 dataAbilityPredicates.equalTo("NAME", "lisi") 83 ``` 84 85### notEqualTo 86 87notEqualTo(field: string, value: ValueType): DataAbilityPredicates 88 89Creates a **DataAbilityPredicates** object to search for the records in the specified column that are not equal to the given value. 90 91This API is similar to the SQL not equal (!=) operator. 92 93**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 94 95**Parameters** 96 97| Name| Type| Mandatory| Description| 98| -------- | -------- | -------- | -------- | 99| field | string | Yes| Column name in the table.| 100| value | [ValueType](#valuetype) | Yes| Value to match.| 101 102**Return value** 103 104| Type| Description| 105| -------- | -------- | 106| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 107 108**Example** 109 110 ```js 111 dataAbilityPredicates.notEqualTo("NAME", "lisi") 112 ``` 113 114### beginWrap 115 116beginWrap(): DataAbilityPredicates 117 118Creates a **DataAbilityPredicates** object to add a left parenthesis. This API is similar to "(" in an SQL statement and must be used with **endWrap**. 119 120**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 121 122**Return value** 123 124| Type| Description| 125| -------- | -------- | 126| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with a left parenthesis.| 127 128**Example** 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 143Creates a **DataAbilityPredicates** object to add a right parenthesis. This API is similar to ")" in an SQL statement and must be used with **beginWrap**. 144 145**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 146 147**Return value** 148 149| Type| Description| 150| -------- | -------- | 151| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with a right parenthesis.| 152 153**Example** 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 168Creates a **DataAbilityPredicates** object to add the OR condition. 169 170This API is similar to the SQL **or** operator. 171 172**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 173 174**Return value** 175 176| Type| Description| 177| -------- | -------- | 178| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with the OR condition.| 179 180**Example** 181 182 ```js 183 dataAbilityPredicates.equalTo("NAME", "Lisa") 184 .or() 185 .equalTo("NAME", "Rose") 186 ``` 187 188### and 189 190and(): DataAbilityPredicates 191 192Creates a **DataAbilityPredicates** object to add the AND condition. 193 194**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 195 196**Return value** 197 198| Type| Description| 199| -------- | -------- | 200| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with the AND condition.| 201 202**Example** 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 214Creates a **DataAbilityPredicates** object to search for the records in the specified column that contain the given value. 215 216**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 217 218**Parameters** 219 220| Name| Type| Mandatory| Description| 221| -------- | -------- | -------- | -------- | 222| field | string | Yes| Column name in the table.| 223| value | string | Yes| Value to match.| 224 225**Return value** 226 227| Type| Description| 228| -------- | -------- | 229| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 230 231**Example** 232 233 ```js 234 dataAbilityPredicates.contains("NAME", "os") 235 ``` 236 237### beginsWith 238 239beginsWith(field: string, value: string): DataAbilityPredicates 240 241Creates a **DataAbilityPredicates** object to search for the records in the specified column that begin with the given value. 242 243This API is similar to the percent sign (%) in SQL statements. 244 245**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 246 247**Parameters** 248 249| Name| Type| Mandatory| Description| 250| -------- | -------- | -------- | -------- | 251| field | string | Yes| Column name in the table.| 252| value | string | Yes| Value to match.| 253 254**Return value** 255 256| Type| Description| 257| -------- | -------- | 258| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 259 260**Example** 261 262 ```js 263 dataAbilityPredicates.beginsWith("NAME", "os") 264 ``` 265 266### endsWith 267 268endsWith(field: string, value: string): DataAbilityPredicates 269 270Creates a **DataAbilityPredicates** object to search for the records in the specified column that end with the given value. 271 272This API is similar to the percent sign (%) in SQL statements. 273 274**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 275 276**Parameters** 277 278| Name| Type| Mandatory| Description| 279| -------- | -------- | -------- | -------- | 280| field | string | Yes| Column name in the table.| 281| value | string | Yes| Value to match.| 282 283**Return value** 284 285| Type| Description| 286| -------- | -------- | 287| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 288 289**Example** 290 291 ``` 292 dataAbilityPredicates.endsWith("NAME", "se") 293 ``` 294 295### isNull 296 297isNull(field: string): DataAbilityPredicates 298 299Creates a **DataAbilityPredicates** object to search for the records in the specified column that are **null**. 300 301**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 302 303**Parameters** 304 305| Name| Type| Mandatory| Description| 306| -------- | -------- | -------- | -------- | 307| field | string | Yes| Column name in the table.| 308 309**Return value** 310 311| Type| Description| 312| -------- | -------- | 313| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 314 315**Example** 316 317 ```js 318 dataAbilityPredicates.isNull("NAME") 319 ``` 320 321### isNotNull 322 323isNotNull(field: string): DataAbilityPredicates 324 325Creates a **DataAbilityPredicates** object to search for the records in the specified column that are not **null**. 326 327**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 328 329**Parameters** 330 331| Name| Type| Mandatory| Description| 332| -------- | -------- | -------- | -------- | 333| field | string | Yes| Column name in the table.| 334 335**Return value** 336 337| Type| Description| 338| -------- | -------- | 339| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 340 341**Example** 342 343 ```js 344 dataAbilityPredicates.isNotNull("NAME") 345 ``` 346 347### like 348 349like(field: string, value: string): DataAbilityPredicates 350 351Creates a **DataAbilityPredicates** object to search for the records in the specified column that are similar to the given value. 352 353This API is similar to the SQL **like** statement. 354 355**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 356 357**Parameters** 358 359| Name| Type| Mandatory| Description| 360| -------- | -------- | -------- | -------- | 361| field | string | Yes| Column name in the table.| 362| value | string | Yes| Value to match.| 363 364**Return value** 365 366| Type| Description| 367| -------- | -------- | 368| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 369 370**Example** 371 372 ```js 373 dataAbilityPredicates.like("NAME", "%os%") 374 ``` 375 376### glob 377 378glob(field: string, value: string): DataAbilityPredicates 379 380Creates a **DataAbilityPredicates** object to search for the records in the specified column that match the given string. Different from **like**, the input parameters of this API are case-sensitive. 381 382**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 383 384**Parameters** 385 386| Name| Type| Mandatory| Description| 387| -------- | -------- | -------- | -------- | 388| field | string | Yes| Column name in the table.| 389| value | string | Yes| Value to match.| 390 391**Return value** 392 393| Type| Description| 394| -------- | -------- | 395| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 396 397**Example** 398 399 ```js 400 dataAbilityPredicates.glob("NAME", "?h*g") 401 402 // Only the records whose value is "Lisa" in the "name" column are matched. 403 dataAbilityPredicates.glob("NAME", "Lisa") 404 405 // Only the records whose value is "lisa" in the "name" column are matched. 406 dataAbilityPredicates.glob("NAME", "lisa") 407 ``` 408 409### between 410 411between(field: string, low: ValueType, high: ValueType): DataAbilityPredicates 412 413Creates a **DataAbilityPredicates** object to search for the records in the specified column that are within the given range. 414 415**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 416 417**Parameters** 418 419| Name| Type| Mandatory| Description| 420| -------- | -------- | -------- | -------- | 421| field | string | Yes| Column name in the table.| 422| low | [ValueType](#valuetype) | Yes| Minimum value of the range to set.| 423| high | [ValueType](#valuetype) | Yes| Maximum value of the range to set.| 424 425**Return value** 426 427| Type| Description| 428| -------- | -------- | 429| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 430 431**Example** 432 433 ```js 434 dataAbilityPredicates.between("AGE", 10, 50) 435 ``` 436 437### notBetween 438 439notBetween(field: string, low: ValueType, high: ValueType): DataAbilityPredicates 440 441Creates a **DataAbilityPredicates** object to search for the records in the specified column that are out of the given range. 442 443**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 444 445**Parameters** 446 447| Name| Type| Mandatory| Description| 448| -------- | -------- | -------- | -------- | 449| field | string | Yes| Column name in the table.| 450| low | [ValueType](#valuetype) | Yes| Minimum value of the range to set.| 451| high | [ValueType](#valuetype) | Yes| Maximum value of the range to set.| 452 453**Return value** 454 455| Type| Description| 456| -------- | -------- | 457| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 458 459**Example** 460 461 ```js 462 dataAbilityPredicates.notBetween("AGE", 10, 50) 463 ``` 464 465### greaterThan 466 467greaterThan(field: string, value: ValueType): DataAbilityPredicates 468 469Creates a **DataAbilityPredicates** object to search for the records in the specified column that are greater than the given value. 470 471**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 472 473**Parameters** 474 475| Name| Type| Mandatory| Description| 476| -------- | -------- | -------- | -------- | 477| field | string | Yes| Column name in the table.| 478| value | [ValueType](#valuetype) | Yes| Value to match.| 479 480**Return value** 481 482| Type| Description| 483| -------- | -------- | 484| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 485 486**Example** 487 488 ```js 489 dataAbilityPredicates.greaterThan("AGE", 18) 490 ``` 491 492### lessThan 493 494lessThan(field: string, value: ValueType): DataAbilityPredicates 495 496Creates a **DataAbilityPredicates** object to search for the records in the specified column that are less than the given value. 497 498**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 499 500**Parameters** 501 502| Name| Type| Mandatory| Description| 503| -------- | -------- | -------- | -------- | 504| field | string | Yes| Column name in the table.| 505| value | [ValueType](#valuetype) | Yes| Value to match.| 506 507**Return value** 508 509| Type| Description| 510| -------- | -------- | 511| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 512 513**Example** 514 515 ```js 516 dataAbilityPredicates.lessThan("AGE", 20) 517 ``` 518 519### greaterThanOrEqualTo 520 521greaterThanOrEqualTo(field: string, value: ValueType): DataAbilityPredicates 522 523Creates a **DataAbilityPredicates** object to search for the records in the specified column that are greater than or equal to the given value. 524 525**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 526 527**Parameters** 528 529| Name| Type| Mandatory| Description| 530| -------- | -------- | -------- | -------- | 531| field | string | Yes| Column name in the table.| 532| value | [ValueType](#valuetype) | Yes| Value to match.| 533 534**Return value** 535 536| Type| Description| 537| -------- | -------- | 538| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 539 540**Example** 541 542 ```js 543 dataAbilityPredicates.greaterThanOrEqualTo("AGE", 18) 544 ``` 545 546### lessThanOrEqualTo 547 548lessThanOrEqualTo(field: string, value: ValueType): DataAbilityPredicates 549 550Creates a **DataAbilityPredicates** object to search for the records in the specified column that are less than or equal to the given value. 551 552**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 553 554**Parameters** 555 556| Name| Type| Mandatory| Description| 557| -------- | -------- | -------- | -------- | 558| field | string | Yes| Column name in the table.| 559| value | [ValueType](#valuetype) | Yes| Value to match.| 560 561**Return value** 562 563| Type| Description| 564| -------- | -------- | 565| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 566 567**Example** 568 569 ```js 570 dataAbilityPredicates.lessThanOrEqualTo("AGE", 20) 571 ``` 572 573### orderByAsc 574 575orderByAsc(field: string): DataAbilityPredicates 576 577Creates a **DataAbilityPredicates** object to sort the records in the specified column in ascending order. When there are multiple **orderByAsc**s, the first **orderByAsc** used has the highest priority. 578 579**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 580 581**Parameters** 582 583| Name| Type| Mandatory| Description| 584| -------- | -------- | -------- | -------- | 585| field | string | Yes| Column name in the table.| 586 587**Return value** 588 589| Type| Description| 590| -------- | -------- | 591| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 592 593**Example** 594 595 ```js 596 // Sort data by name first; for the records with the same name, sort them by age; for the records with the same name and age, sort them by salary in ascending order. 597 dataAbilityPredicates.orderByAsc("NAME").orderByAsc("AGE").orderByAsc("SALARY") 598 ``` 599 600### orderByDesc 601 602orderByDesc(field: string): DataAbilityPredicates 603 604Creates a **DataAbilityPredicates** object to sort the records in the specified column in descending order. When there are multiple **orderByDesc**s, the first **orderByDesc** used has the highest priority. 605 606**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 607 608**Parameters** 609 610| Name| Type| Mandatory| Description| 611| -------- | -------- | -------- | -------- | 612| field | string | Yes| Column name in the table.| 613 614**Return value** 615 616| Type| Description| 617| -------- | -------- | 618| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 619 620**Example** 621 622 ```js 623 // Sort the data by age first. For the data records with the same age, sort them by salary. 624 dataAbilityPredicates.orderByDesc("AGE").orderByDesc("SALARY") 625 ``` 626 627### distinct 628 629distinct(): DataAbilityPredicates 630 631Creates a **DataAbilityPredicates** object to filter out duplicate records. 632 633**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 634 635**Return value** 636 637| Type| Description| 638| -------- | -------- | 639| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 640 641**Example** 642 643 ```js 644 dataAbilityPredicates.equalTo("NAME", "Rose").distinct() 645 ``` 646 647### limitAs 648 649limitAs(value: number): DataAbilityPredicates 650 651Creates a **DataAbilityPredicates** object to limit the number of records. 652 653**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 654 655**Parameters** 656 657| Name| Type| Mandatory| Description| 658| -------- | -------- | -------- | -------- | 659| value | number | Yes| Maximum number of records. The value should be a positive integer. If a value less than or equal to **0** is specified, the number of records is not limited.| 660 661**Return value** 662 663| Type| Description| 664| -------- | -------- | 665| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 666 667**Example** 668 669 ```js 670 dataAbilityPredicates.equalTo("NAME", "Rose").limitAs(3) 671 ``` 672 673### offsetAs 674 675offsetAs(rowOffset: number): DataAbilityPredicates 676 677Creates a **DataAbilityPredicates** object to set the start position of the query result. This API must be used together with **limitAs**. Otherwise, no result will be returned. To query all rows after the specified offset, pass in **-1** in **limitAs**. 678 679**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 680 681**Parameters** 682 683| Name| Type| Mandatory| Description| 684| -------- | -------- | -------- | -------- | 685| rowOffset | number | Yes| Start position. The value should be a positive integer. If a value less than or equal to **0** is specified, the query result is returned from the first element.| 686 687**Return value** 688 689| Type| Description| 690| -------- | -------- | 691| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 692 693**Example** 694 695 ```js 696 // Display the three data records following the first three records. 697 dataAbilityPredicates.equalTo("NAME", "Rose").offsetAs(3).limitAs(3) 698 ``` 699 700 701### groupBy 702 703groupBy(fields: Array<string>): DataAbilityPredicates 704 705Creates a **DataAbilityPredicates** object to group the query results based on the specified columns. 706 707**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 708 709**Parameters** 710 711| Name| Type| Mandatory| Description| 712| -------- | -------- | -------- | -------- | 713| fields | Array<string> | Yes| Names of columns to group.| 714 715**Return value** 716 717| Type| Description| 718| -------- | -------- | 719| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 720 721**Example** 722 723 ```js 724 dataAbilityPredicates.groupBy(["AGE", "NAME"]) 725 ``` 726 727### indexedBy 728 729indexedBy(field: string): DataAbilityPredicates 730 731Creates a **DataAbilityPredicates** object to specify the index column. Before calling this API, you need to create an index column. 732 733**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 734 735**Parameters** 736 737| Name| Type| Mandatory| Description| 738| -------- | -------- | -------- | -------- | 739| field | string | Yes| Name of the index.| 740 741**Return value** 742 743| Type| Description| 744| -------- | -------- | 745| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 746 747**Example** 748 749 ```js 750 import { dataAbility, relationalStore } from '@kit.ArkData'; 751 752 let context = getContext(this); 753 754 const STORE_CONFIG : relationalStore.StoreConfig = { 755 name: 'RdbTest.db', // Database file name. 756 securityLevel: relationalStore.SecurityLevel.S3, 757 }; 758 // Table structure: EMPLOYEE (NAME, AGE, SALARY, CODES) 759 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 statement for creating a data table. 760 relationalStore.getRdbStore(context, STORE_CONFIG, async (err, store) => { 761 if (err) { 762 console.error(`Failed to get RdbStore. Code:${err.code}, message:${err.message}`); 763 return; 764 } 765 console.info('Succeeded in getting RdbStore.'); 766 767 768 await store.executeSql(SQL_CREATE_TABLE); // Create a data table. 769 770 771 // Create an index. 772 const SQL_CREATE_INDEX = 'CREATE INDEX SALARY_INDEX ON EMPLOYEE(SALARY)' 773 await store.executeSql(SQL_CREATE_INDEX); 774 // ... 775 776 let dataAbilityPredicates = new dataAbility.DataAbilityPredicates() 777 dataAbilityPredicates.indexedBy("SALARY_INDEX") 778 779 // ... 780 }) 781 ``` 782 783### in 784 785in(field: string, value: Array<ValueType>): DataAbilityPredicates 786 787Creates a **DataAbilityPredicates** object to search for the records in the specified column that are in the given range. 788 789**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 790 791**Parameters** 792 793| Name| Type| Mandatory| Description| 794| -------- | -------- | -------- | -------- | 795| field | string | Yes| Column name in the table.| 796| value | Array<[ValueType](#valuetype)> | Yes| Array of **ValueType**s to match.| 797 798 799**Return value** 800 801| Type| Description| 802| -------- | -------- | 803| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 804 805**Example** 806 807 ```js 808 dataAbilityPredicates.in("AGE", [18, 20]) 809 ``` 810 811### notIn 812 813notIn(field: string, value: Array<ValueType>): DataAbilityPredicates 814 815Creates a **DataAbilityPredicates** object to search for the records in the specified column that are out of the given range. 816 817**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 818 819**Parameters** 820 821| Name| Type| Mandatory| Description| 822| -------- | -------- | -------- | -------- | 823| field | string | Yes| Column name in the table.| 824| value | Array<[ValueType](#valuetype)> | Yes| Array of **ValueType**s to match.| 825 826**Return value** 827 828| Type| Description| 829| -------- | -------- | 830| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object created.| 831 832**Example** 833 834 ```js 835 dataAbilityPredicates.notIn("NAME", ["Lisa", "Rose"]) 836 ``` 837 838## ValueType 839 840type ValueType = number | string | boolean 841 842Defines the value types. 843 844**System capability**: SystemCapability.DistributedDataManager.DataShare.Core 845 846| Type | Description | 847| ------- | -------------------- | 848| number | The value is a number. | 849| string | The value is a string. | 850| boolean | The value is of Boolean type.| 851