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