python - 如何仅返回深度嵌套属性为 False 的 Firebase 对象
问题描述
如果我有以下 Firebase 结构:
root:
id1:
subId1:
prop: False
subId2:
prop: True
id2:
subId1:
id3:
subId1:
prop: False
subId2:
prop: False
我将如何返回root
,具有完整的树结构,但仅包含 prop 所在的最里面的子记录False
?
所以我希望上面的查询返回:
root:
id1:
subId1:
prop: False
只有root
andprop
是已知属性,iD
andsubId
字段是动态生成的。
我添加了一个索引,prop
但是我正在使用的查询(python)没有结果:
db.reference('/root').order_by_child("prop").equal_to(False).get()
解决方案
Firebase 从您附加侦听器的位置返回完整节点。您可以使用查询返回这些节点的子集,但该位置的每个子节点将始终完整返回。
如果您发现自己想要返回部分节点,请考虑更改您的数据模型以允许您想要的查询。因此,在您的情况下,您可以创建一个平面列表,如果子节点:
newRoot:
id1_subId1:
prop: False
id1_subId2:
prop: True
id3_subId1:
prop: False
id3_subId2:
prop: False
现在您可以轻松查询新的根节点并仅获取带有prop: False
. 在使用 NoSQL 数据库时,修改数据模型以允许像这样的其他用例是很常见的。要了解更多信息,我强烈建议您阅读NoSQL 数据建模并观看Firebase for SQL 开发人员。
我还建议查看我对这些相关问题的回答:
推荐阅读
- python - 如何在python中使用beautifulsoup从网页中获取数据
- angular - 对 Angular 中的后备路线感到困惑
- php - 无法使用 PHP 将 HTML 表单数据发送到电子邮件
- css - 如何使用当前用户角色创建类名?
- python - 忽略熊猫地图字典中的空值
- javascript - 如何从使用 ajax 调用附加的 html 输入中更改跨度值?
- javascript - display:none 安全吗?
- php - 如何在 spatie 权限包中列出所有具有权限的角色?
- ios - 我如何将所有联系人的电话号码编译到一个单元格中 - 使用 CNContact
- python - 如何在 Django 框架的 HTML 页面中显示图像?