Javascript 两个数组的Firebase firestore查询
我在firestore中有下一个数据结构:Javascript 两个数组的Firebase firestore查询,javascript,arrays,firebase,google-cloud-firestore,Javascript,Arrays,Firebase,Google Cloud Firestore,我在firestore中有下一个数据结构: { "votes_yes":[ "id1", "id2", "id3", ... ], "votes_no":[ "id4", "id5", "id6", ... ], } 我想构建一个查询,它将返回用户投票的文档
{
"votes_yes":[
"id1",
"id2",
"id3",
...
],
"votes_no":[
"id4",
"id5",
"id6",
...
],
}
我想构建一个查询,它将返回用户投票的文档列表。
为此,我需要检查他的id
是否存在于其中一个数组中
借助于数组包含的内容,我可以轻松地为一个数组执行此操作:
ref.where('votes_yes', 'array-contains', `userId`).get()
但是,是否可以对数组包含的内容执行逻辑或
我在……中没有发现任何有用的东西:(告诉您需要了解的内容:
请注意,in、not in和array包含以下限制:
- in、not in和array包含最多10个比较值的任何支持
- 每个查询最多可以使用一个array contains子句。不能将array contains与array contains组合使用
- 每个查询最多只能使用一个in、not in或array包含任何子句。不能在同一查询中组合这些运算符
- 不能将不在与不等于合并!=。
不能按等式(=)或in子句中包含的字段对查询排序
我加粗了一个限制,该限制阻止您在每个查询中使用多个数组包含。除此之外,无论您执行何种查询
执行您要求的操作的唯一方法是执行多个查询,并使用您自己的逻辑在应用程序中组合结果,以确定哪些文档同时满足这两个条件