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

2018-06-01 07:53:43 +08:00
 nightstart

我有如下的这么一个数据结构,这是 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",
}
1173 次点击
所在节点    问与答
4 条回复
xkeyideal
2018-06-01 08:58:08 +08:00
mongo 也有 group 语句的,那么 map 的指定信息,不是 bson.M{"UNION.information":"xxx"},

卧槽,你这样例数据有问题吧,map 怎么能有两个同样的 key
duz
2018-06-01 09:06:19 +08:00
@xkeyideal 我以前遇到过一次,同样的 key,每次修改的是 Key(A)读出来的是 Key(B)
nightstart
2018-06-01 09:47:26 +08:00
@xkeyideal 抱歉抱歉我的锅 2 我修改了一些信息 没想到两个都写了 information
xkeyideal
2018-06-01 11:07:11 +08:00
{
"_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",
}
把存储结构改成这样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/459436

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX