Zha*_*nov 2 firebase google-cloud-firestore
我有一个 Firestore 文档,其中包含如下数组:
Array: Array:
[1, 2, 3, 4, 5, 6, 7] or ['Zhangir', 'Erasyl', 'Arman']
Run Code Online (Sandbox Code Playgroud)
我需要检查该文档是否包含任何给定的数组。例如:
[1, 2, 3, 4] or [1, 2, 7] or ['Zhangir', 'Arman'] and so on
Run Code Online (Sandbox Code Playgroud)
并仅在完全匹配时才返回它。arraycontains [1], arraycontains[2]...但考虑到我的数组可以有100个元素长,每次都说起来很不方便。有什么办法可以对很多值进行复合查询吗?我找到的所有信息都说我不能,但也许有办法。
从我的例子来看,那就是
Firestore.instance.collection("Querys")
.where('array', arrayContains: [1, 2, 3, 4, 5]);
Run Code Online (Sandbox Code Playgroud)
或者
Firestore.instance.collection('Querys')
.where('array', arrayContains: ['Zhangir', 'Arman']);
Run Code Online (Sandbox Code Playgroud)
而不是类似的东西
Firestore.instance.collection('Querys')
.where('array', arrayContains: 'Zhangir')
.where('array', arrayContains: 'Arman');
Run Code Online (Sandbox Code Playgroud)
Firestore 现在可以检查数组字段上的这些条件:
array-contains。array-contains-any。您所描述的是array-contains-all类似操作,目前不存在。而且您无法通过组合多项array-contains检查来创建它,因为查询中只能包含其中一项。您可能想为其提交功能请求。
今天最好的选择是:
array-contains使用该值执行查询。然后,您在应用程序代码中进行额外的过滤。where value == true条件,如此问题的答案所示:Firestore: Multiple 'array-contains'| 归档时间: |
|
| 查看次数: |
7715 次 |
| 最近记录: |