我正在设计一个 Firestore 数据库,想知道以下架构的成本影响......
按照云 Firestore 教程,让我们想象一下这种架构:“餐厅”集合有一个“评论”子集合。就像是:
--Restuarants
--My Restaurant
--Reviews
--My Review 1, through n
Run Code Online (Sandbox Code Playgroud)
我有兴趣查询评论子集合,但是我对评论本身并不真正感兴趣,而是对餐厅感兴趣。
举例来说,在这样的查询中,我实际上对2019 年 8 月 1 日至少发布了一篇评论的餐厅Get all reviews posted on August 1st 2019感兴趣。IE。我想拿回餐厅的文件,而不是评论。
--Restuarants
--My Restaurant
--Reviews
--My Review 1, through n
Run Code Online (Sandbox Code Playgroud)
通过这个实现,我将获取所有“儿子”(即所有评论)。这有几个缺点:
有一个更好的方法吗?有没有办法避免获取评论并仅获取父文档?
谢谢!
我有一个以下形式的python包:
package
??? __init__.py
??? module_1.py
??? module_2.py
Run Code Online (Sandbox Code Playgroud)
在 __init__.py 里面我有:
package
??? __init__.py
??? module_1.py
??? module_2.py
Run Code Online (Sandbox Code Playgroud)
Module_1 是:
__all__ = ["module_1", "module_2"]
Run Code Online (Sandbox Code Playgroud)
Module_2 是:
__all__ = ["foo"]
def foo(): pass
Run Code Online (Sandbox Code Playgroud)
从文档中我认为以下代码将导入foo和Bar:
__all__ = ["Bar"]
class Bar: pass
Run Code Online (Sandbox Code Playgroud)
但是,当我运行pk.foo()它时会引发错误:(AttributeError: module 'package' has no attribute 'foo'对于 Bar 也是如此)。
感谢这个答案,我知道要获得所需的行为,我可以将 __init__.py 更改为:
import package as pk
Run Code Online (Sandbox Code Playgroud)
以上工作。
但是,我不明白 文档。线路:
如果一个包的 __init__.py 代码定义了一个名为 __all__ 的列表,它被认为是遇到 from package import …