【问题标题】:Firestore - Python getting only the value from array field with 'array_contains'Firestore - Python 仅从具有“array_contains”的数组字段中获取值
【发布时间】:2020-09-30 10:55:35
【问题描述】:

我正在使用 Google Firestore 获取一些 RSS 提要。我有一个名为“Haber Listesi”的字典 当我使用 where 查询与我的 dict 进行比较时,Query 返回包含该值的整个数组。 如果有更多相等的数据,查询再次返回相同的数组。

如何只获取该数组包含的值或获取该数组一次?

for hbr in Haber_Listesi["Haber"]:
    docs += db.collection('Haberler Listesi').where('Haber', 'array_contains', hbr).get()

【问题讨论】:

  • Haber_Listesi 是否包含唯一值?你是什​​么意思:Query returns whole array that contain the value. And if there are more data which is equal, query returns same array again.?你能分享一个例子吗?可能是您必须在查询之前管理 Haber_Listesi[]。
  • 是的,它具有独特的价值。我是说;例如。当我对“hbr”值运行此查询时,查询返回“hbr”所属的文档。但我只想获得“hbr”值。

标签: python google-cloud-firestore


【解决方案1】:

在 Cloud Firestore SDK 中,您始终会检索完整的文档,而不是某些值。检索每个文档的子集的唯一方法是通过REST API

所有 REST API 端点都存在于基本 URL https://firestore.googleapis.com/v1/ 下。开始试验 REST API 的最佳方式是使用 API Explorer,它会自动生成 Google Identity OAuth 2.0 令牌并允许您检查 API。

也许您可能想更改检索此信息的方式。即使您可以考虑在您的数据库中重复某些数据(denormalization - 本教程讨论 Firebase 实时数据库,但 Firestore 的原理相同),这在 NoSQL 数据库中很常见。这将取决于您拥有的整个工作流程和您的应用架构。关于NoSQL data modeling,我将与您分享。

在那里,您可以找到具体的数据建模技术和模式、作者在撰写本文时想到的特定系统的列表,以及以下概念技术:非规范化、聚合、应用程序端连接、原子聚合、可枚举键、降维、索引表以及许多其他主题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 2021-11-23
    • 2018-07-07
    • 1970-01-01
    • 2020-03-22
    • 2019-03-03
    相关资源
    最近更新 更多