我正在使用Firebase来管理我的项目,但无法使用其中某些值不为null的where子句创建查询。
示例:我有一批员工。每个设备都有一个设备列表作为对象,其中键是设备ID,值是颜色。
user = {
firstName: 'blabla',
lastName: 'bloblo',
equipments: {
123: 'blue',
124: 'red'
}
}
我想让所有拥有特定设备的员工参与其中。可以说123。
它涉及从设备中选择* *,其中equipments.123不为空。我试过了:
firestore.collection('employees').where(`equipments.${equipmentId}`, '!=', null)
但它不起作用。
我似乎无法使其工作。你能帮助我吗。
最佳答案
2020年9月更新: v7.21.0引入了对不等于(!=
)查询的支持!
这意味着您现在可以使用以下代码:
firestore.collection('employees').where('equipments.${equipmentId}', '!=', null)
上一个答案:
Firestore没有“不等于”运算符。但是看逻辑,您要尝试的是查询
String
而不是null
的值。 Firestore can do that(如果您将字符串传递给where()
函数)。因此,您可以做的是查询小于
\uf8ff
的值。在Unicode范围内,这是一个非常高的代码点。由于它位于Unicode中大多数常规字符之后,因此该查询将返回String
类型的所有内容:firestore.collection('employees').where('equipments.${equipmentId}', '<', '\uf8ff')
或者,您可以简单地查询大于“”(空String
)的值:firestore.collection('employees').where('equipments.${equipmentId}', '>', '')
关于javascript - Firestore选择不为null的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48479532/