今天第一次接触 mongodb ,拿到一个统计任务,不太有思路。
数据格式是这样的{
id:123,
dId:456,
time:1234567,
}
{
id:123,
dId:789,
time:7654321,
}
其中 id 是用户 id , dId 是文章 Id ,一个表要 10g 左右,现在要统计所有关系对,
生成如下格式{
id:123,
{文章 Id1:时间,文章 Id2:时间}
}表
用 python 全部读出来一个一个统计肯定可以,但我觉得应该可以用 mongodb 内置的查询语句就可以做到,求各位大神给思路。
在此跪谢
![]() | 1 lujiajing1126 2015-10-15 23:48:03 +08:00 mongodb 自带 mapreduce 。。。 |
![]() | 2 tinyproxy 2015-10-16 00:41:15 +08:00 via iPad 楼上正解, mapReduce |
![]() | 3 shiny 2015-10-16 00:56:04 +08:00 然后你会发现用 MongoDB 做点复杂点的 mapReduce 很痛苦,性能往往不及传统 SQL 数据库。 |
4 a358003542 2015-10-16 01:08:31 +08:00 mongodb 就给初学者玩玩,真实战 redis 和 SQL 够用了。你说表格 schema 不定,如果一个数据库你的 schema 都没确定那不是数据库的问题,而是你的程序表格根本就没有设计好。 |
![]() | 5 bigfei 2015-10-16 01:33:39 +08:00 |
6 ivyshark 2015-10-16 10:00:22 +08:00 学生管理系统 mongo 就很合适 稍微复杂一点还是不要用 mongo 了 |
7 Mardo OP 多谢楼上各位,我好好看看怎么搞 |
![]() | 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 的 |