当节点中没有字段时如何读取集合?
例如,我有如下收集数据:
tags > tagid1 > postId > { createdBy : 'user1' }
tags > tagid2 > postId > { createdBy : 'user1' }
tags > tagid3 > postId > { createdBy : 'user1' }
在我尝试读取标签集合的地方,它没有提供任何数据。
const g = await db.collection('tags').get();
g.size // 0 - but it has three sub element tagid1, tagid2, tagId3 (these ids are dynamic)
当childern中没有直接元素时,有什么方法可以读取集合?
答案 0 :(得分:0)
您将获得0
,因为在您的tags
馆藏中没有实际的文件。 tagid1
,tagid2
,tagId3
等不存在。这些文档(标记对象)不存在,因为您根本没有创建它们。您所做的就是在最初不存在的文档下创建子集合。换句话说,您仅为id
集合中的文档“保留”了tags
,然后在其下创建了一个子集合。一般来说,您应该只创建实际存在的文档的子集合。
请记住,在Firestore中,文档和子集合不能像文件系统文件和目录那样工作。如果在文档下创建子集合,则不会隐式创建任何父文档。子集合不以任何方式绑定到父文档。
如果要获取实际的文档数,请在每个标签对象下至少创建一个包含值的属性。