今天第一次接触 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 的 |