我正在处理Cloud Firestore。试着决定我是否应该在下一个项目中使用它。
我想做一个嵌套查询,但我在官方文档中找到的所有教程和示例都只查询2级深度的对象,大多数时候都是直接调用key/id。
我需要一种我相信叫做";嵌套查询";不过,我可能错了,也许这不是我刚刚开始学习的NoSQL中描述这种事情的正确短语。
这是一款用于游戏的骨架/试点应用程序,用户可以在其中创建角色,我想查询一个角色的名字是否已经取了
这是我的简单DB结构:
主集合名为"users"
在"users"
中,我有用户文档。
在每个用户文档中,我都有一个名为"characters"
的集合
在"characters"
中,我有字符文档。
在每个字符文档中有两个字段,name
和level
。
我在查询中尝试了各种方法,我能得到的最接近的就是迭代整个过程,我认为这不是完美的解决方案
有人能帮我写一个高效的嵌套查询吗;示例名称";已经是DB中的一个现有字符,并告诉我当你想像";"无限深";嵌套查询?
如果每个用户文档都包含一个具有相同("字符"名称的子集合,那么我认为您正在寻找一个集合组查询。所以查询应该是这样的:
val queryByName = db.collectionGroup("characters").whereEqualTo("name", "Adam");
别忘了创建一个索引。
除此之外,Firestore的速度和1级一样快,也在100级。所以不用担心。