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