MongoDB中递归文档的结构和查询语法?

Cha*_*osa 7 database recursion mongodb pymongo

我最近开始研究MongoDB的工作项目.我对JSON和MongoDB的查询结构很新,所以我希望你们中的一个可以提供一些澄清.

我已经将问题翻译成Excel术语,因为它很常见并且很好地代表了我的问题.

如果我试图将Excel公式建模为MongoDB文档,那么最好的格式是什么(我会解释我的潜在查询较低)?请记住,Excel中的公式可以嵌套在(几乎)任何顺序中,并且具有任何深度,并且参数可以以字符串或数字形式出现.我希望能够搜索这些单元格来回答诸如"查找所有使用= AVG()函数的单元格"或"查找包含= SUM()函数的所有单元格中的查询"= AVG()函数内的查询(例如= AVG(x,y,z,SUM(a,b,c)))." 能够回答这些基于公式结构的查询比能够回答关于数字或字符串的查询更重要,如果不能回答所有问题的话.

目前我正在设想我的文档大致有以下格式:

{
    formula: "AVG",
    arguments: [4,5, {
        formula: "SUM",
        arguments: [6,7,{
            formula: "ABS",
            arguments: [-8,-9]
(closing parenthesis/brackets)
}
Run Code Online (Sandbox Code Playgroud)

对于我想要做的事情,这是一种合理的格式吗?如果是,我将如何查询"在= AVG内查找= SUM的案例"?如何找到嵌套得更深的= ABS公式呢?由于公式的动态性质,它实际上不可能期望某个顺序或某个深度.

Der*_*ick 5

如果您有这样的任意结构,那么我建议您以不同的方式存储树。任意结构很难查询和处理。

MongoDB 文档有一些建议:http://docs.mongodb.org/manual/tutorial/model-tree-structs/