小编pwr*_*ray的帖子

firestore子集合的优点

firestore文档没有深入讨论使用子集合与顶级集合所涉及的权衡,但确实指出它们不太灵活且不太"可扩展".鉴于您牺牲了在子集合中设置数据的灵活性,除了精神上令人满意的结构之外,必须有一些明确的优势.

例如,对于跨越大型集合的单个密钥,firestore查询的时间与从较小的集合中获取所有项目相比如何?

假设我们想要查询家庭单位中所有人的大型"人物"集合.或者,首先按系列将数据划分为族单位.

人 - >人:{family:'Smith'}

家庭 - >家庭:{姓名:'史密斯'} - >人 - >人

我希望后者更有效率,但这是正确的吗?每个人都有大的估计吗?子集合的任何其他优点(例如交易)?

collections tradeoff google-cloud-firestore

15
推荐指数
2
解决办法
1344
查看次数

计算Google Firestore文档的大小

Firestore文档详细介绍了如何手动计算文档的存储大小,但似乎没有为任何文档引用,快照或元数据提供此功能.

在我尝试使用自己的计算之前,有没有人知道这个官方或非官方的功能?

以下是我在(https://firebase.google.com/docs/firestore/storage-size上对文档的解释)对此类函数进行的首次剪切(完全未经测试)

function calcFirestoreDocSize(collectionName, docId, docObject) {
    let docNameSize = encodedLength(collectionName) + 1 + 16
    let docIdType = typeof(docId)
    if(docIdType === 'string') {
        docNameSize += encodedLength(docId) + 1
    } else {
        docNameSize += 8
    }  
    let docSize = docNameSize + calcObjSize(docObject)

    return  docSize
}
function encodedLength(str) {
    var len = str.length;
    for (let i = str.length - 1; i >= 0; i--) {
        var code = str.charCodeAt(i);
        if (code > 0x7f && code <= 0x7ff) {
            len++; …
Run Code Online (Sandbox Code Playgroud)

size document calculation google-cloud-firestore

11
推荐指数
1
解决办法
966
查看次数

将python AST编译为方法

我一直在python中试验AST.我想通过在运行时转换AST来修改方法.

我可以使用预编译方法的源代码inspect.getsource(),并且可以根据需要使用AST访问者修改AST.

这可能很天真,但我希望能够编译AST并做类似的事情:

myClass.method.__func__.__code__ = compile(newAST, '<string>', 'exec')
Run Code Online (Sandbox Code Playgroud)

但是compile只接受以ast.Module为根的AST.有没有办法只编译ast.FunctionDef,或从编译(和其他空)模块代码中检索功能代码对象?

任何指向信息的指针都会受到赞赏.我见过的AST例子只处理简单的表达式.


我意识到我只需要在命名空间中执行模块,然后我就可以访问正常的结构了.所以模式是:

src = inspect.getsource(myClass.myMethod)
astFromSrc = ast.parse(unindent(src))         # need to remove extra indent from method
transform(astFromSrc.body)                    # transform the AST as you need 
ast.fix_missing_locations(astFromSrc)         # fix up line numbers etc
compiled = compile(astFromSrc, '<string>', 'exec') # compile the module AST

#######  From here is the part I was missing
myScope = {}                                  # make an empty namespace
exec compiled in myScope  # now myScope contains a proper compiled …
Run Code Online (Sandbox Code Playgroud)

python methods abstract-syntax-tree

10
推荐指数
1
解决办法
2779
查看次数

在DraftJS编辑器中约束块类型

在draftjs中,普通段落的块类型为unstyled,尽管draftjs确实定义了paragraph类型。同样,粘贴时,p或div标签的默认块类型未设置样式。

这种设计的原因是什么?有没有办法代替paragraph普通段落用作默认块类型?

draftjs

5
推荐指数
0
解决办法
427
查看次数

安装 pylint OSX 忽略可执行文件

今天我在 OSX(Python 2.7 Homebrew,pip 7.1.2)上安装了 pylint。找不到 pylint 可执行文件。最后从 Github 复制文件,粘贴到 /usr/local/bin,并使其可执行,这似乎解决了问题。

我对 OSX 相当陌生,为什么 pip 不安装可执行文件?

macos installation pylint

4
推荐指数
1
解决办法
2315
查看次数

Couchdb 数据库每用户设计文档管理

我正在为一个有很多用户的 Web 应用程序评估 Couchdb。如果我使用每个用户的数据库模型,大概每个数据库中的设计文档都将是相同的。我没有发现任何提及作用于多个数据库的“全局”设计文档,或任何可以轻松更改所有用户数据库中的设计文档的工具。这是如何处理的?

couchdb

4
推荐指数
1
解决办法
189
查看次数

Cloud Firestore文档锁定

要确保在共享设置中独占使用Cloud Firestore文档,是否足以在事务中读取,然后写入字段(例如"lockedBy")?

database locking transactions firebase google-cloud-firestore

4
推荐指数
1
解决办法
2531
查看次数