【问题标题】:Query based on keys of firestore Map基于firestore Map的key查询
【发布时间】:2021-04-29 04:26:50
【问题描述】:

我正在编写一个更新同级集合 onUpdate 的云函数。我有以下内容:

await db.collection(
          `users/${userId}/rosters`).where(
          "athletes.keys", "array-contains", bid).get();

其中“运动员”是名册中每个文档中的地图属性。这个逻辑不成立吗?还有其他方法吗? 谢谢!!

【问题讨论】:

  • 请提供更多关于您想要达到的目标的详细信息。另外,var 出价是什么样的?

标签: firebase google-cloud-firestore


【解决方案1】:

Firestore 查询支持点符号解释,允许过滤目标路径,例如 athletes.keys。这确实需要index to be generated,如果还没有并且路径不能是动态的。例如:"athletes.users." + user.id 无效。

一些答案​​供参考

【讨论】:

  • this answer 的第二部分对于在文档中搜索出价也很有用,只需将“members”替换为“bids”即可。
【解决方案2】:

谢谢你的回答,我现在意识到我很傻,可以使用地图技巧。这将返回在运动员中包含匹配键的所有名册。

 db.collection(
          `users/${userId}/rosters`).where(
          `athletes.${bid}`, ">=", "").get();

Sam 的解决方案也可以通过添加“exists”键来实现。

【讨论】:

    猜你喜欢
    • 2018-05-05
    • 2019-04-30
    • 2020-12-18
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    相关资源
    最近更新 更多