我正在尝试在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。
maker_or_checker_or_approver:true
当然,您始终可以执行三个查询并将其加入客户端。