V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
nightstart
V2EX  ›  问与答

Mongo 统计记录子节点的数据 有办法吗

  •  
  •   nightstart · Jun 1, 2018 · 1982 views
    This topic created in 2895 days ago, the information mentioned may be changed or developed.

    我有如下的这么一个数据结构,这是 mongo 一张表里的一条记录. 每条记录下面有一些特定的 key 每个 key 对应的是一个 dict. 想像 mongo 大佬请教一下 假设我每条记录的 key 都是一样的,都是 task_uuid、UNION、SUBQUERY_REP、DML_SORT

    1. 怎么统计他们的 value 里面的记录条数 -> 引申出来 怎么统计 value 的记录的 value 的条数
    2. 拿数据的时候针对于 value 的字典(infomation) 怎么才能指定拿出来的字段
    3. 假设每条记录的 key 是不一样的 也就是会动态变化 不止是上面的 task_uuid、UNION、SUBQUERY_REP、DML_SORT 这四个 key 又该怎么做呢

    抱拳(请各位 mongo 大佬指教

    {
        "_id" : ObjectId("1321321321421"),
        "UNION" : {
            "infomation" : {
                "sql_id" : "321321432",
                "sql_text" : "select count(*) count1 from",
                "obj_name" : null,
                "plan" : []
            },
            "infomation" : {
                "sql_id" : "43zcf95vbk32143vjx",
                "sql_text" : "from appuser1.objectname1  union\nselect count(*) count19 from appuser1.objectname1 ",
                "obj_name" : null,
                "plan" : []
            },
            "scores" : 4.0
        },
        "SUBQUERY_REP" : {},
        "DML_SORT" : {},
        "task_uuid" : "09ae20b4-64e8-11e8-b712-f45c832138f3b",
    }
    
    4 replies    2018-06-01 11:07:11 +08:00
    xkeyideal
        1
    xkeyideal  
       Jun 1, 2018
    mongo 也有 group 语句的,那么 map 的指定信息,不是 bson.M{"UNION.information":"xxx"},

    卧槽,你这样例数据有问题吧,map 怎么能有两个同样的 key
    duz
        2
    duz  
       Jun 1, 2018 via iPhone
    @xkeyideal 我以前遇到过一次,同样的 key,每次修改的是 Key(A)读出来的是 Key(B)
    nightstart
        3
    nightstart  
    OP
       Jun 1, 2018
    @xkeyideal 抱歉抱歉我的锅 2 我修改了一些信息 没想到两个都写了 information
    xkeyideal
        4
    xkeyideal  
       Jun 1, 2018
    {
    "_id" : ObjectId("1321321321421"),
    "UNION" : {
    "321321432" : {
    "sql_id" : "321321432",
    "sql_text" : "select count(*) count1 from",
    "obj_name" : null,
    "plan" : []
    },
    "43zcf95vbk32143vjx" : {
    "sql_id" : "43zcf95vbk32143vjx",
    "sql_text" : "from appuser1.objectname1 union\nselect count(*) count19 from appuser1.objectname1 ",
    "obj_name" : null,
    "plan" : []
    },
    "scores" : 4.0
    },
    "SUBQUERY_REP" : {},
    "DML_SORT" : {},
    "task_uuid" : "09ae20b4-64e8-11e8-b712-f45c832138f3b",
    }
    把存储结构改成这样
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1069 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 17:25 · PVG 01:25 · LAX 10:25 · JFK 13:25
    ♥ Do have faith in what you're doing.