【发布时间】:2018-07-06 20:47:01
【问题描述】:
我正在使用 firebase 来管理我的项目,但我无法使用 where 子句创建查询,其中某些值不为空。
示例:我有一组员工。每个都有一个设备列表作为对象,其中键是设备 ID,值是颜色。
user = {
firstName: 'blabla',
lastName: 'bloblo',
equipments: {
123: 'blue',
124: 'red'
}
}
我想得到所有在设备中拥有某种设备的员工。假设是 123。
涉及Select * from Employees,其中设备.123 不为空。我试过了:
firestore.collection('employees').where(`equipments.${equipmentId}`, '!=', null)
但它不起作用。
我似乎无法让它工作。你能帮帮我吗?
【问题讨论】:
-
Cloud Firestore 没有“不等于”运算符。见stackoverflow.com/questions/47251919/…
-
正如@FrankvanPuffelen 提到的,没有“不等于”运算符,但我突然想到了一种解决方法。您可以尝试使用
firestore.collection('employees').where('equipments.${equipmentId}', '<', '\uf8ff')。我从未对此进行过测试,但我相信值得一试。 -
糟糕...我误读为“不存在的地方”。 “存在的地方”确实通常是可行的。听起来像是@RosárioPereiraFernandes 的答案! :-)
-
我只是检查不存在的文档中的任何字段(名为 .exists 的字段)是否等于 true
标签: javascript firebase google-cloud-firestore