"in"操作员如何在 Firebase 后台使用 Firebase 索引的存储方式工作?



我正在看这个Firebase视频,有一件事我不太清楚,那就是"||"不支持or操作符,特别是Firebase存储索引的方式。有人说,您必须在客户端而不是在firebase端进行单独的查询并将其连接起来。

是不是in操作符本质上只是一个方便的方法和行为像多个或语句?https://firebase.blog/posts/2019/11/cloud-firestore-now-supports-in-queries

这是Firestore索引的一个众所周知的特性,它有利于范围查询。使用索引后,对于不相等查询,后端仍然必须扫描集合中的每个文档才能得出结果,因此当文档数量随着时间的推移而增加时,将影响性能。
因此,根据您关于在查询中使用"in"操作符的后端逻辑工作的问题,并且在本线程中还提到了添加in查询,不仅解决了此性能问题,而且还支持在同一字段上最多10个相等子句。在"in"操作符查询中传递的参数将在搜索文档时进行比较。这将允许您根据您的过滤条件获取文档,从而使函数操作花费更少的时间,而不是逐个遍历每个条目。

例如:

// Get all documents in 'foo' where status is open or upcoming  
db.collection('foo').where('status','in',['open','upcoming']).get()

我还建议你看看下面这些类似的例子:

  • 如何使用逻辑OR执行复合查询
  • 如何在firestore上进行查询
  • Firebase数据库操作员工作
  • Firestore IN操作符工作
  • Firestore查询限制

最新更新