你好,我想查询Firestore中的子集合,我具有以下结构
"groups": {
"g1":
{
"name": "Group 1",
"users": {
"u1": {
"id": "user1"
},
"u2": {
"id": "user2"
}
}
},
"g2":
{
"name": "Group 2",
"users": {
"u1": {
"id": "user1"
}
}
}
}
"users": {
"user1": {
"firstName": "Lorem",
"lastName": "Lorem"
},
"user2": {
"firstName": "Lorem2",
"lastName": "Lorem2"
}
}
,我想查询一下,在示例中寻找user1会带给我属于该用户的组,这会给我带来g1和g2,但是如果我寻找user2的话我只会带给我g1,那么您可以在两者之间创建一个复合索引吗?组和用户?我正在用ionic 4开发它,我不知道数据是否结构合理
非常感谢您能为我提供的帮助
答案 0 :(得分:0)
您可以在字段users
上使用array_contains
operation。所需要做的就是知道数组应包含的完整,确切的元素。如果您知道所有这些,则可以使用以下方法进行检查:
groupsRef.where("users", "array-contains", {
u1": {
"id": "user1"
}
})
如果您只知道"user1"
,则需要一个仅包含"user1"
的数组。例如:
"userids": ["user1", "user2"]
然后您可以使用以下查询:
itiesRef.where("regions", "array-contains", "user1")