【问题标题】:Find max number of fields in any document in MongoDB collection在 MongoDB 集合中的任何文档中查找最大字段数
【发布时间】:2017-04-27 15:26:44
【问题描述】:

如何获取 MongoDB 集合中的任何文档中存在的最大字段数及其名称。 例如,有一个名为 testCollection 的集合,其中包含 10 个文档,其中包含任意数量的第一级字段或键。

我需要知道检测具有最大字段数及其名称的文档或文档的最快方法。

我尝试过使用蛮力查找所有方法并遍历每个文档,但这不是具有大量行的集合的理想解决方案。

【问题讨论】:

  • 您的用例是什么?最快的方法是维护一个索引字段,计算每个文档中的字段数,但在添加和删除字段时维护计数的责任在于您的应用程序代码。如果不明确跟踪字段计数,否则您将不得不求助于集合扫描,但是这种要求似乎不寻常。

标签: mongodb mongoose


【解决方案1】:

一个可能对您有所帮助的小型库:

npm install objectdigger

还有例子:

var objectdigger = require("objectdigger")


var item = {
    "a": "a",
    "b": "b",
    "c": {
        "c1" : "c1",
        "c2" : "c2",
        "c3" : {
            "c3a" : "c3a",
            "c3b" : "c3b",
            "c3c" : [
                { "c3ca" : "c3ca" },
                { "c3cb" : "c3cb" },
                "zzz",
                { 3: "444"}
            ]
        }
    }

};


console.log(objectdigger.findDeepest(item));

至于输出:

{ maxKey: 'c.c3.c3c.c3ca', value: 'c3ca', depth: 3 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 2017-08-12
    • 2013-06-01
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多