【问题标题】:Firestore: Query by map in array of document [duplicate]Firestore:按文档数组中的地图查询[重复]
【发布时间】:2019-10-18 19:16:10
【问题描述】:

我需要执行查询以返回与特定用户 ID 关联的文档列表

这很有效,因为我发送的是完全相同的地图。

firestore.collection('conversations').where('users', 'array-contains', {id: 1, username: 'john')

我认为这不起作用,因为我只发送 id

firestore.collection('conversations').where('users', 'array-contains', {id: 1})

是否可以这样做,否则我将不得不“手动”过滤所有记录?谢谢!

【问题讨论】:

  • 还是没有解决办法?

标签: javascript google-cloud-firestore


【解决方案1】:

array-contains 目前不支持查询数组中对象的字段。但是您可以重组您的数据,以便您可以使用它。 请参阅以下链接,了解 SO 上关于同一问题的已有答案。

Firestore to query by an array's field value

How to query documents containing array of objects in Firestore collection using whereArrayContains() filter on Android?

【讨论】:

  • 感谢@denniskbijo,您对重组有何建议?我现在有一个频道集合和一个消息集合。我知道如何获取给定对话的所有消息(因为我有 id),但我仍然需要以某种方式列出用户所属的所有频道。一种选择是获取所有频道并在客户端制作过滤器。这很昂贵,并且随着频道列表的增加会变得更加复杂。
  • 还是没有解决办法?
猜你喜欢
  • 1970-01-01
  • 2021-10-17
  • 2018-05-24
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 2018-07-06
相关资源
最近更新 更多