V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
Mardo
V2EX  ›  MongoDB

关于 mongodb 做统计,求大神提示解决思路

  •  
  •   Mardo · 2015-10-15 23:43:48 +08:00 · 4914 次点击
    这是一个创建于 3326 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天第一次接触 mongodb ,拿到一个统计任务,不太有思路。

    数据格式是这样的{
    id:123,
    dId:456,
    time:1234567,
    }

    {
    id:123,
    dId:789,
    time:7654321,
    }

    其中 id 是用户 id , dId 是文章 Id ,一个表要 10g 左右,现在要统计所有关系对,
    生成如下格式{
    id:123,
    {文章 Id1:时间,文章 Id2:时间}
    }表
    用 python 全部读出来一个一个统计肯定可以,但我觉得应该可以用 mongodb 内置的查询语句就可以做到,求各位大神给思路。

    在此跪谢

    9 条回复    2015-10-16 15:05:10 +08:00
    lujiajing1126
        1
    lujiajing1126  
       2015-10-15 23:48:03 +08:00
    mongodb 自带 mapreduce 。。。
    tinyproxy
        2
    tinyproxy  
       2015-10-16 00:41:15 +08:00 via iPad
    楼上正解, mapReduce
    shiny
        3
    shiny  
       2015-10-16 00:56:04 +08:00
    然后你会发现用 MongoDB 做点复杂点的 mapReduce 很痛苦,性能往往不及传统 SQL 数据库。
    a358003542
        4
    a358003542  
       2015-10-16 01:08:31 +08:00
    mongodb 就给初学者玩玩,真实战 redis 和 SQL 够用了。你说表格 schema 不定,如果一个数据库你的 schema 都没确定那不是数据库的问题,而是你的程序表格根本就没有设计好。
    bigfei
        5
    bigfei  
       2015-10-16 01:33:39 +08:00
    ivyshark
        6
    ivyshark  
       2015-10-16 10:00:22 +08:00
    学生管理系统 mongo 就很合适 稍微复杂一点还是不要用 mongo 了
    Mardo
        7
    Mardo  
    OP
       2015-10-16 12:28:17 +08:00
    多谢楼上各位,我好好看看怎么搞
    Mardo
        8
    Mardo  
    OP
       2015-10-16 12:29:41 +08:00
    @bigfei
    好像在公司,这个链接打不开~~
    bigfei
        9
    bigfei  
       2015-10-16 15:05:10 +08:00
    db.getCollection('test').aggregate(
    { $group:
    { _id: "$id",
    articles: { $push: {dId:"$dId", time:"$time"} }
    }
    }
    )
    gist.github.com 被 GFWed 的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2798 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 04:03 · PVG 12:03 · LAX 20:03 · JFK 23:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.