当前位置: 首页 > 面试题库 >

在Firestore查询中实施OR-Firebase Firestore

曾嘉荣
2023-03-14
问题内容

我正在尝试在Firestore查询中实现逻辑OR运算符。

db.collection('users').where('company_id', '==', companyId)
                          .where('role', '==', 'Maker')
                          .where('role', '==', 'Checker')
                          .where('role', '==', 'Approver')
                          .get().then(function(adminsSnapshot){


             //Some processing on dataSnapshot
})

但这不是实现OR的正确方法

我希望所有具有“制造商,检查者或批准者”角色的用户。

如何在Firestore查询中实施OR?Doc中没有任何内容。


问题答案:

编辑(2019年11月) 现在,CloudFirestore支持“IN”查询(公告),该查询使您可以执行一种OR查询,以查找具有相同字段中几个值之一的文档。

例如,上面的查询:

db.collection('users')
  .where('company_id', '==', companyId)
  .where('role', 'in', ['Maker', 'Checker', 'Approver']);

原始答案

CloudFirestore中没有“或”查询。如果要在单个查询中实现此目的,则需要一个单个字段,例如maker_or_checker_or_approver:true

当然,您始终可以执行三个查询并将其加入客户端。



 类似资料:
  • 最近我一直在玩Geohash和FiRecovery。我的待办事项场景是收集文档(餐厅),每个餐厅都会有发送到的Geohash列表。 我想避免在文档餐厅中添加地理位置,因为文档可能比它应该的大很多倍。 最初的想法是将所有地理哈希都放在餐厅文档的子集合中,但我发现不可能在文档的子集合中执行查询。 第二个想法是将Geohash提取到交付区域集合的顶层。 这个场景中的问题是,我将返回一个餐厅名称列表,然后

  • 我将如何实现或在firestore查询?医生身上什么都没有。

  • 我正在使用elasticsearch从json文件中过滤和搜索,我是这项技术的新手。所以我有点困惑如何在ElasticSearch中编写查询。 这是oracle查询。如何在ElasticSearch中编写此查询?我使用的是elasticsearch版本6.8.13

  • 问题内容: 基本上,我试图从基于两个不同组的SQL中获取数据,必须相等并且必须相等,但是至于我想要同时获得和,这是我尝试的无济于事。 我很确定他们的方法可以使此查询正常工作,只是不在我脑海 问题答案: 具有比更高的优先级,因此您现有的表达式当前被评估为: 要强制使用替代逻辑,需要包括显式括号: 但是,在这种情况下,可以使用MySQL的运算符代替:

  • 根据firestore文档,我可以通过组合'>'和'<'查询来执行相当于‘!='的查询: 但我到底该怎么做呢?如果可能,请提供精确示例的代码(查询结果!=30)。

  • 问题内容: 对于相当简单的表结构,即。 ie. Person, Criteria, and PersonCriteria (the combi-table),我现在设置了一个查询,以选择具有所有选定条件的所有人员。 此刻查询本身看起来像这样: 到目前为止,没有问题,一切正常。 现在,我想为用户提供在搜索中添加一些AND和OR变量的可能性。有人会说: 我正在寻找一个拥有以下条件的人:条件1 AND