• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.data.dataSharePredicates (Data Share Predicates)
2
3You can use **DataSharePredicates** to specify conditions for [updating](js-apis-data-dataShare.md#update), [deleting](js-apis-data-dataShare.md#delete), and [querying](js-apis-data-dataShare.md#query) data when **DataShare** is used to manage data.
4
5The APIs provided by  **DataSharePredicates** correspond to the filter criteria of the database. Before using the APIs, you need to have basic database knowledge.
6
7> **NOTE**
8>
9> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
10
11
12
13## Modules to Import
14
15```ts
16import dataSharePredicates from '@ohos.data.dataSharePredicates';
17```
18
19## DataSharePredicates
20Provides methods for setting different **DataSharePredicates** objects. This type is not multi-thread safe. If a **DataSharePredicates** instance is operated by multiple threads at the same time in an application, use a lock for the instance.
21
22### equalTo<sup>10+</sup>
23
24equalTo(field: string, value: ValueType): DataSharePredicates
25
26Sets a **DataSharePredicates** object to match the data that is equal to the specified value.
27
28Currently, only the relational database (RDB) and key-value database (KVDB, schema) support this **DataSharePredicates** object.
29
30**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
31
32**Parameters**
33
34| Name| Type                                               | Mandatory| Description                  |
35| ------ | --------------------------------------------------- | ---- | ---------------------- |
36| field  | string                                              | Yes  | Column name in the database table.    |
37| value  | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes  | Value to match.|
38
39**Return value**
40
41| Type                                       | Description                      |
42| ------------------------------------------- | -------------------------- |
43| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
44
45**Example**
46
47```ts
48let predicates = new dataSharePredicates.DataSharePredicates()
49predicates.equalTo("NAME", "Rose")
50```
51
52### notEqualTo
53
54notEqualTo(field: string, value: ValueType): DataSharePredicates
55
56Sets a **DataSharePredicates** object to match the data that is not equal to the specified value.
57
58Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
59
60**System API**: This is a system API.
61
62**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
63
64**Parameters**
65
66| Name| Type                                               | Mandatory| Description                  |
67| ------ | --------------------------------------------------- | ---- | ---------------------- |
68| field  | string                                              | Yes  | Column name in the database table.    |
69| value  | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes  | Value to match.|
70
71**Return value**
72
73| Type                                       | Description                      |
74| ------------------------------------------- | -------------------------- |
75| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
76
77**Example**
78
79```ts
80let predicates = new dataSharePredicates.DataSharePredicates()
81predicates.notEqualTo("NAME", "Rose")
82```
83
84### beginWrap
85
86beginWrap(): DataSharePredicates
87
88Adds a left parenthesis to this **DataSharePredicates**.
89
90Currently, only the RDB supports this **DataSharePredicates** object.
91
92**System API**: This is a system API.
93
94**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
95
96**Return value**
97
98| Type                                       | Description                  |
99| ------------------------------------------- | ---------------------- |
100| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with a left parenthesis.|
101
102**Example**
103
104```ts
105let predicates = new dataSharePredicates.DataSharePredicates()
106predicates.equalTo("NAME", "lisi")
107    .beginWrap()
108    .equalTo("AGE", 18)
109    .or()
110    .equalTo("SALARY", 200.5)
111    .endWrap()
112```
113
114### endWrap
115
116endWrap(): DataSharePredicates
117
118Adds a right parenthesis to this **DataSharePredicates** object.
119
120Currently, only the RDB supports this **DataSharePredicates** object.
121
122**System API**: This is a system API.
123
124**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
125
126**Return value**
127
128| Type                                       | Description                  |
129| ------------------------------------------- | ---------------------- |
130| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with a right parenthesis.|
131
132**Example**
133
134```ts
135let predicates = new dataSharePredicates.DataSharePredicates()
136predicates.equalTo("NAME", "lisi")
137    .beginWrap()
138    .equalTo("AGE", 18)
139    .or()
140    .equalTo("SALARY", 200.5)
141    .endWrap()
142```
143
144### or
145
146or(): DataSharePredicates
147
148Adds the OR condition to this **DataSharePredicates** object.
149
150Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
151
152**System API**: This is a system API.
153
154**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
155
156**Return value**
157
158| Type                                       | Description                  |
159| ------------------------------------------- | ---------------------- |
160| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with the OR condition.|
161
162**Example**
163
164```ts
165let predicates = new dataSharePredicates.DataSharePredicates()
166predicates.equalTo("NAME", "lisi")
167    .or()
168    .equalTo("NAME", "Rose")
169```
170
171### and<sup>10+</sup>
172
173and(): DataSharePredicates
174
175Adds the AND condition to this **DataSharePredicates** object.
176
177Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
178
179**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
180
181**Return value**
182
183| Type                                       | Description                  |
184| ------------------------------------------- | ---------------------- |
185| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with the AND condition.|
186
187**Example**
188
189```ts
190let predicates = new dataSharePredicates.DataSharePredicates()
191predicates.equalTo("NAME", "lisi")
192    .and()
193    .equalTo("SALARY", 200.5)
194```
195
196### contains
197
198contains(field: string, value: string): DataSharePredicates
199
200Sets a **DataSharePredicates** object to match the data that contains the specified value.
201
202Currently, only the RDB supports this **DataSharePredicates** object.
203
204**System API**: This is a system API.
205
206**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
207
208**Parameters**
209
210| Name| Type  | Mandatory| Description                |
211| ------ | ------ | ---- | -------------------- |
212| field  | string | Yes  | Column name in the database table.  |
213| value  | string | Yes  | Value to match.|
214
215**Return value**
216
217| Type                                       | Description                      |
218| ------------------------------------------- | -------------------------- |
219| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
220
221**Example**
222
223```ts
224let predicates = new dataSharePredicates.DataSharePredicates()
225predicates.contains("NAME", "os")
226```
227
228### beginsWith
229
230beginsWith(field: string, value: string): DataSharePredicates
231
232Sets a **DataSharePredicates** object to match the data that begins with the specified value.
233
234Currently, only the RDB supports this **DataSharePredicates** object.
235
236**System API**: This is a system API.
237
238**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
239
240**Parameters**
241
242| Name| Type  | Mandatory| Description                  |
243| ------ | ------ | ---- | ---------------------- |
244| field  | string | Yes  | Column name in the database table.    |
245| value  | string | Yes  | Start value to match.|
246
247**Return value**
248
249| Type                                       | Description                      |
250| ------------------------------------------- | -------------------------- |
251| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
252
253**Example**
254
255```ts
256let predicates = new dataSharePredicates.DataSharePredicates()
257predicates.beginsWith("NAME", "os")
258```
259
260### endsWith
261
262endsWith(field: string, value: string): DataSharePredicates
263
264Sets a **DataSharePredicates** object to match the data that ends with the specified value.
265
266Currently, only the RDB supports this **DataSharePredicates** object.
267
268**System API**: This is a system API.
269
270**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
271
272**Parameters**
273
274| Name| Type  | Mandatory| Description                  |
275| ------ | ------ | ---- | ---------------------- |
276| field  | string | Yes  | Column name in the database table.    |
277| value  | string | Yes  | End value to match.|
278
279**Return value**
280
281| Type                                       | Description                      |
282| ------------------------------------------- | -------------------------- |
283| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
284
285**Example**
286
287```ts
288let predicates = new dataSharePredicates.DataSharePredicates()
289predicates.endsWith("NAME", "os")
290```
291
292### isNull
293
294isNull(field: string): DataSharePredicates
295
296Sets a **DataSharePredicates** object to match the data whose value is null.
297
298Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
299
300**System API**: This is a system API.
301
302**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
303
304**Parameters**
305
306| Name| Type  | Mandatory| Description              |
307| ------ | ------ | ---- | ------------------ |
308| field  | string | Yes  | Column name in the database table.|
309
310**Return value**
311
312| Type                                       | Description                      |
313| ------------------------------------------- | -------------------------- |
314| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
315
316**Example**
317
318```ts
319let predicates = new dataSharePredicates.DataSharePredicates()
320predicates.isNull("NAME")
321```
322
323### isNotNull
324
325isNotNull(field: string): DataSharePredicates
326
327Sets a **DataSharePredicates** object to match the data whose value is not null.
328
329Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
330
331**System API**: This is a system API.
332
333**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
334
335**Parameters**
336
337| Name| Type  | Mandatory| Description              |
338| ------ | ------ | ---- | ------------------ |
339| field  | string | Yes  | Column name in the database table.|
340
341**Return value**
342
343| Type                                       | Description                      |
344| ------------------------------------------- | -------------------------- |
345| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
346
347**Example**
348
349```ts
350let predicates = new dataSharePredicates.DataSharePredicates()
351predicates.isNotNull("NAME")
352```
353
354### like
355
356like(field: string, value: string): DataSharePredicates
357
358Sets a **DataSharePredicates** object to match the data that matches the specified wildcard expression.
359
360Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
361
362**System API**: This is a system API.
363
364**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
365
366**Parameters**
367
368| Name| Type  | Mandatory| Description                  |
369| ------ | ------ | ---- | ---------------------- |
370| field  | string | Yes  | Column name in the database table.    |
371| value  | string | Yes  | Wildcard expression to match.<br>In the expression, '%' represents zero, one, or more digits or characters, and '_' represents a single digit or character. It is case insensitive.|
372
373**Return value**
374
375| Type                                       | Description                      |
376| ------------------------------------------- | -------------------------- |
377| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
378
379**Example**
380
381```ts
382let predicates = new dataSharePredicates.DataSharePredicates()
383predicates.like("NAME", "%os%")
384```
385
386### unlike
387
388unlike(field: string, value: string): DataSharePredicates
389
390Sets a **DataSharePredicates** object to match the data that does not match the specified wildcard expression.
391
392Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
393
394**System API**: This is a system API.
395
396**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
397
398**Parameters**
399
400| Name| Type  | Mandatory| Description                  |
401| ------ | ------ | ---- | ---------------------- |
402| field  | string | Yes  | Column name in the database table.    |
403| value  | string | Yes  | Wildcard expression to match.<br>In the expression, '%' represents zero, one, or more digits or characters, and '_' represents a single digit or character. It is case insensitive.|
404
405**Return value**
406
407| Type                                       | Description                      |
408| ------------------------------------------- | -------------------------- |
409| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
410
411**Example**
412
413```ts
414let predicates = new dataSharePredicates.DataSharePredicates()
415predicates.unlike("NAME", "%os%")
416```
417
418### glob
419
420glob(field: string, value: string): DataSharePredicates
421
422Sets a **DataSharePredicates** object to match the data that matches the specified wildcard expression.
423
424Currently, only the RDB supports this **DataSharePredicates** object.
425
426**System API**: This is a system API.
427
428**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
429
430**Parameters**
431
432| Name| Type  | Mandatory| Description                  |
433| ------ | ------ | ---- | ---------------------- |
434| field  | string | Yes  | Column name in the database table.    |
435| value  | string | Yes  | Wildcard expression to match.<br>In the expression, '*' represents zero, one, or more digits or characters, and '?' represents a single digit or character. It is case sensitive.|
436
437**Return value**
438
439| Type                                       | Description                      |
440| ------------------------------------------- | -------------------------- |
441| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
442
443**Example**
444
445```ts
446let predicates = new dataSharePredicates.DataSharePredicates()
447predicates.glob("NAME", "?h*g")
448```
449
450### between
451
452between(field: string, low: ValueType, high: ValueType): DataSharePredicates
453
454Sets a **DataSharePredicates** object to match the data that is within the specified range, including the start and end values.
455
456Currently, only the RDB supports this **DataSharePredicates** object.
457
458**System API**: This is a system API.
459
460**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
461
462**Parameters**
463
464| Name| Type                                               | Mandatory| Description                    |
465| ------ | --------------------------------------------------- | ---- | ------------------------ |
466| field  | string                                              | Yes  | Column name in the database table.      |
467| low    | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes  | The lowest value of the range.|
468| high   | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes  | The highest value of the range.|
469
470**Return value**
471
472| Type                                       | Description                      |
473| ------------------------------------------- | -------------------------- |
474| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
475
476**Example**
477
478```ts
479let predicates = new dataSharePredicates.DataSharePredicates()
480predicates.between("AGE", 10, 50)
481```
482
483### notBetween
484
485notBetween(field: string, low: ValueType, high: ValueType): DataSharePredicates
486
487Sets a **DataSharePredicates** object to match the data that is out of the specified range, excluding the start and end values.
488
489Currently, only the RDB supports this **DataSharePredicates** object.
490
491**System API**: This is a system API.
492
493**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
494
495**Parameters**
496
497| Name| Type                                               | Mandatory| Description                    |
498| ------ | --------------------------------------------------- | ---- | ------------------------ |
499| field  | string                                              | Yes  | Column name in the database table.      |
500| low    | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes  | The lowest value of the range.|
501| high   | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes  | The highest value of the range.|
502
503**Return value**
504
505| Type                                       | Description                      |
506| ------------------------------------------- | -------------------------- |
507| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
508
509**Example**
510
511```ts
512let predicates = new dataSharePredicates.DataSharePredicates()
513predicates.notBetween("AGE", 10, 50)
514```
515
516### greaterThan
517
518greaterThan(field: string, value: ValueType): DataSharePredicates
519
520Sets a **DataSharePredicates** object to match the data that is greater than the specified value.
521
522Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
523
524**System API**: This is a system API.
525
526**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
527
528**Parameters**
529
530| Name | Type     | Mandatory| Description                  |
531| ------- | --------- | ---- | ---------------------- |
532| field   | string    | Yes  | Column name in the database table.    |
533| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes  | Value to match.|
534
535**Return value**
536
537| Type                                       | Description                      |
538| ------------------------------------------- | -------------------------- |
539| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
540
541**Example**
542
543```ts
544let predicates = new dataSharePredicates.DataSharePredicates()
545predicates.greaterThan("AGE", 10)
546```
547
548### lessThan
549
550lessThan(field: string, value: ValueType): DataSharePredicates
551
552Sets a **DataSharePredicates** object to match the data that is less than the specified value.
553
554Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
555
556**System API**: This is a system API.
557
558**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
559
560**Parameters**
561
562| Name| Type                                               | Mandatory| Description                  |
563| ------ | --------------------------------------------------- | ---- | ---------------------- |
564| field  | string                                              | Yes  | Column name in the database table.    |
565| value  | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes  | Value to match.|
566
567**Return value**
568
569| Type                                       | Description                      |
570| ------------------------------------------- | -------------------------- |
571| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
572
573**Example**
574
575```ts
576let predicates = new dataSharePredicates.DataSharePredicates()
577predicates.lessThan("AGE", 50)
578```
579
580### greaterThanOrEqualTo
581
582greaterThanOrEqualTo(field: string, value: ValueType): DataSharePredicates
583
584Sets a **DataSharePredicates** object to match the data that is greater than or equal to the specified value.
585
586Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
587
588**System API**: This is a system API.
589
590**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
591
592**Parameters**
593
594| Name | Type     | Mandatory| Description                  |
595| ------- | --------- | ---- | ---------------------- |
596| field   | string    | Yes  | Column name in the database table.    |
597| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes  | Value to match.|
598
599**Return value**
600
601| Type                                       | Description                      |
602| ------------------------------------------- | -------------------------- |
603| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
604
605**Example**
606
607```ts
608let predicates = new dataSharePredicates.DataSharePredicates()
609predicates.greaterThanOrEqualTo("AGE", 10)
610```
611
612### lessThanOrEqualTo
613
614lessThanOrEqualTo(field: string, value: ValueType): DataSharePredicates
615
616Sets a **DataSharePredicates** object to match the data that is less than or equal to the specified value.
617
618Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
619
620**System API**: This is a system API.
621
622**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
623
624**Parameters**
625
626| Name | Type     | Mandatory| Description                  |
627| ------- | --------- | ---- | ---------------------- |
628| field   | string    | Yes  | Column name in the database table.    |
629| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes  | Value to match.|
630
631**Return value**
632
633| Type                                       | Description                      |
634| ------------------------------------------- | -------------------------- |
635| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
636
637**Example**
638
639```ts
640let predicates = new dataSharePredicates.DataSharePredicates()
641predicates.lessThanOrEqualTo("AGE", 50)
642```
643
644### orderByAsc<sup>10+</sup>
645
646orderByAsc(field: string): DataSharePredicates
647
648Sets a **DataSharePredicates** object that sorts data in ascending order.
649
650Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
651
652**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
653
654**Parameters**
655
656| Name| Type  | Mandatory| Description              |
657| ------ | ------ | ---- | ------------------ |
658| field  | string | Yes  | Column name in the database table.|
659
660**Return value**
661
662| Type                                       | Description                      |
663| ------------------------------------------- | -------------------------- |
664| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
665
666**Example**
667
668```ts
669let predicates = new dataSharePredicates.DataSharePredicates()
670predicates.orderByAsc("AGE")
671```
672
673### orderByDesc<sup>10+</sup>
674
675orderByDesc(field: string): DataSharePredicates
676
677Sets a **DataSharePredicates** object that sorts data in descending order.
678
679Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
680
681**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
682
683**Parameters**
684
685| Name| Type  | Mandatory| Description              |
686| ------ | ------ | ---- | ------------------ |
687| field  | string | Yes  | Column name in the database table.|
688
689**Return value**
690
691| Type                                       | Description                      |
692| ------------------------------------------- | -------------------------- |
693| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
694
695**Example**
696
697```ts
698let predicates = new dataSharePredicates.DataSharePredicates()
699predicates.orderByDesc("AGE")
700```
701
702### distinct
703
704distinct(): DataSharePredicates
705
706Sets a **DataSharePredicates** object to filter out duplicate data records.
707
708Currently, only the RDB supports this **DataSharePredicates** object.
709
710**System API**: This is a system API.
711
712**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
713
714**Return value**
715
716| Type                                       | Description                      |
717| ------------------------------------------- | -------------------------- |
718| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
719
720**Example**
721
722```ts
723let predicates = new dataSharePredicates.DataSharePredicates()
724predicates.equalTo("NAME", "Rose").distinct()
725```
726
727### limit<sup>10+</sup>
728
729limit(total: number, offset: number): DataSharePredicates
730
731Sets a **DataSharePredicates** object to specify the number of results and the start position.
732
733Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
734
735**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
736
737**Parameters**
738
739| Name  | Type  | Mandatory| Description          |
740| -------- | ------ | ---- | -------------- |
741| total    | number | Yes  | Number of results.  |
742| offset | number | Yes  | Start position.|
743
744**Return value**
745
746| Type                                       | Description                      |
747| ------------------------------------------- | -------------------------- |
748| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
749
750**Example**
751
752```ts
753let predicates = new dataSharePredicates.DataSharePredicates()
754predicates.equalTo("NAME", "Rose").limit(10, 3)
755```
756
757### groupBy
758
759groupBy(fields: Array&lt;string&gt;): DataSharePredicates
760
761Sets a **DataSharePredicates** object group the records according to the specified fields.
762
763Currently, only the RDB supports this **DataSharePredicates** object.
764
765**System API**: This is a system API.
766
767**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
768
769**Parameters**
770
771| Name| Type         | Mandatory| Description                |
772| ------ | ------------- | ---- | -------------------- |
773| fields | Array&lt;string&gt; | Yes  | Names of the columns by which the records are grouped.|
774
775**Return value**
776
777| Type                                       | Description                      |
778| ------------------------------------------- | -------------------------- |
779| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
780
781**Example**
782
783```ts
784let predicates = new dataSharePredicates.DataSharePredicates()
785predicates.groupBy(["AGE", "NAME"])
786```
787
788### indexedBy
789
790indexedBy(field: string): DataSharePredicates
791
792Sets a **DataSharePredicates** object to list data by the specified index.
793
794Currently, only the RDB supports this **DataSharePredicates** object.
795
796**System API**: This is a system API.
797
798**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
799
800**Parameters**
801
802| Name| Type  | Mandatory| Description          |
803| ------ | ------ | ---- | -------------- |
804| field  | string | Yes  | Name of the index column.|
805
806**Return value**
807
808| Type                                       | Description                      |
809| ------------------------------------------- | -------------------------- |
810| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
811
812**Example**
813
814```ts
815let predicates = new dataSharePredicates.DataSharePredicates()
816predicates.indexedBy("SALARY_INDEX")
817```
818
819### in<sup>10+</sup>
820
821in(field: string, value: Array&lt;ValueType&gt;): DataSharePredicates
822
823Sets a **DataSharePredicates** object to match the data that is within the specified value.
824
825Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
826
827**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
828
829**Parameters**
830
831| Name | Type            | Mandatory| Description                                   |
832| ------- | ---------------- | ---- | --------------------------------------- |
833| field   | string           | Yes| Column name in the database table.                     |
834| value | Array&lt;[ValueType](js-apis-data-valuesBucket.md#valuetype)&gt; | Yes  | Array of the values to match.|
835
836**Return value**
837
838| Type                                       | Description                      |
839| ------------------------------------------- | -------------------------- |
840| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
841
842**Example**
843
844```ts
845let predicates = new dataSharePredicates.DataSharePredicates()
846predicates.in("AGE", [18, 20])
847```
848
849### notIn
850
851notIn(field: string, value: Array&lt;ValueType&gt;): DataSharePredicates
852
853Sets a **DataSharePredicates** object to match the data that is not in the specified value.
854
855Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
856
857**System API**: This is a system API.
858
859**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
860
861**Parameters**
862
863| Name | Type            | Mandatory| Description                                   |
864| ------- | ---------------- | ---- | --------------------------------------- |
865| field   | string           | Yes  | Column name in the database table.                     |
866| value | Array&lt;[ValueType](js-apis-data-valuesBucket.md#valuetype)&gt; | Yes  | Array of the values to match.|
867
868**Return value**
869
870| Type                                       | Description                      |
871| ------------------------------------------- | -------------------------- |
872| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
873
874**Example**
875
876```ts
877let predicates = new dataSharePredicates.DataSharePredicates()
878predicates.notIn("NAME", ["Lisa", "Rose"])
879```
880
881### prefixKey
882
883prefixKey(prefix: string): DataSharePredicates
884
885Sets a **DataSharePredicates** object to match the data with the specified key prefix.
886
887Currently, only the KVDB supports this **DataSharePredicates** object.
888
889**System API**: This is a system API.
890
891**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
892
893**Parameters**
894
895| Name| Type  | Mandatory| Description          |
896| ------ | ------ | ---- | -------------- |
897| prefix | string | Yes  | Key prefix to match.|
898
899**Return value**
900
901| Type                                       | Description                      |
902| ------------------------------------------- | -------------------------- |
903| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
904
905**Example**
906
907```ts
908let predicates = new dataSharePredicates.DataSharePredicates()
909predicates.prefixKey("NAME")
910```
911
912### inKeys
913
914inKeys(keys: Array&lt;string&gt;): DataSharePredicates
915
916Sets a **DataSharePredicates** object to match the data whose keys are within the given range.
917
918Currently, only the KVDB supports this **DataSharePredicates** object.
919
920**System API**: This is a system API.
921
922**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
923
924**Parameters**
925
926| Name| Type         | Mandatory| Description              |
927| ------ | ------------- | ---- | ------------------ |
928| inKeys | Array&lt;string&gt; | Yes  | Array of the keys to match.|
929
930**Return value**
931
932| Type                                       | Description                      |
933| ------------------------------------------- | -------------------------- |
934| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
935
936**Example**
937
938```ts
939let predicates = new dataSharePredicates.DataSharePredicates()
940predicates.inKeys(["Lisa", "Rose"])
941```
942