초간단 nasdaq 데이터분석
[mongodb에서 Aggregation 방법]
|
group |
map / reduce |
aggregate f/w |
map |
X |
O |
△ |
reduce |
O |
O |
O |
분산집계 with shard |
X |
O |
O |
실행결과 |
document |
-out collection - document |
document |
용도 |
online |
batch |
o / b |
myung@JMYUNG C:\Users\myung
> mongod.exe --dbpath c:\data\db --port 27017
1. 복구
mongodump
- BSON형태로 저장
- 백업용도
- mongorestore로 복구
> mongorestore --host localhost c:\nasdaq_sample
2017-05-09T15:47:07.454+0900 preparing collections to restore from
2017-05-09T15:47:07.566+0900 reading metadata for nasdaq.stocks from c:\nasdaq_sample\nasdaq\stocks.metadata.json
2017-05-09T15:47:07.566+0900 reading metadata for nasdaq.symbols from c:\nasdaq_sample\nasdaq\symbols.metadata.json
2017-05-09T15:47:07.586+0900 restoring nasdaq.stocks from c:\nasdaq_sample\nasdaq\stocks.bson
2017-05-09T15:47:07.605+0900 restoring nasdaq.symbols from c:\nasdaq_sample\nasdaq\symbols.bson
2017-05-09T15:47:07.707+0900 no indexes to restore
2017-05-09T15:47:07.707+0900 finished restoring nasdaq.symbols (5960 documents)
2017-05-09T15:47:10.446+0900 [#.......................] nasdaq.stocks 33.0MB/715MB (4.6%)
2017-05-09T15:47:13.445+0900 [##......................] nasdaq.stocks 72.7MB/715MB (10.2%)
2017-05-09T15:47:16.447+0900 [###.....................] nasdaq.stocks 107MB/715MB (15.0%)
2017-05-09T15:47:19.445+0900 [####....................] nasdaq.stocks 145MB/715MB (20.3%)
2017-05-09T15:47:22.446+0900 [######..................] nasdaq.stocks 181MB/715MB (25.4%)
2017-05-09T15:47:25.446+0900 [#######.................] nasdaq.stocks 219MB/715MB (30.6%)
2017-05-09T15:47:28.445+0900 [########................] nasdaq.stocks 256MB/715MB (35.8%)
2017-05-09T15:47:31.446+0900 [#########...............] nasdaq.stocks 290MB/715MB (40.6%)
2017-05-09T15:47:34.446+0900 [##########..............] nasdaq.stocks 327MB/715MB (45.7%)
2017-05-09T15:47:37.453+0900 [############............] nasdaq.stocks 358MB/715MB (50.1%)
2017-05-09T15:47:40.446+0900 [#############...........] nasdaq.stocks 390MB/715MB (54.5%)
2017-05-09T15:47:43.446+0900 [##############..........] nasdaq.stocks 424MB/715MB (59.2%)
2017-05-09T15:47:46.445+0900 [###############.........] nasdaq.stocks 462MB/715MB (64.6%)
2017-05-09T15:47:49.445+0900 [################........] nasdaq.stocks 498MB/715MB (69.6%)
2017-05-09T15:47:52.445+0900 [##################......] nasdaq.stocks 537MB/715MB (75.1%)
2017-05-09T15:47:55.446+0900 [###################.....] nasdaq.stocks 572MB/715MB (80.0%)
2017-05-09T15:47:58.445+0900 [####################....] nasdaq.stocks 610MB/715MB (85.3%)
2017-05-09T15:48:01.445+0900 [#####################...] nasdaq.stocks 642MB/715MB (89.8%)
2017-05-09T15:48:04.450+0900 [######################..] nasdaq.stocks 679MB/715MB (94.9%)
2017-05-09T15:48:07.446+0900 [#######################.] nasdaq.stocks 708MB/715MB (99.0%)
2017-05-09T15:48:08.030+0900 [########################] nasdaq.stocks 715MB/715MB (100.0%)
2017-05-09T15:48:08.031+0900 no indexes to restore
2017-05-09T15:48:08.031+0900 finished restoring nasdaq.stocks (4308303 documents)
2017-05-09T15:48:08.031+0900 done
2. 조회
nasdaq
> use nasdaq
switched to db nasdaq
> show collections
stocks
symbols
collection
- rdb의 테이블
- 스키마없음
> db.users.insert({ userid:"myung" , name:"myung je sang"})
WriteResult({ "nInserted" : 1 })
> db.user.find()
> db.users.find()
{ "_id" : ObjectId("59116e3b52ae922ad8a03686"), "userid" : "myung", "name" : "myung je sang" }
> db.users.insert({ userid:"myung" , name:"myung je sang"})
WriteResult({ "nInserted" : 1 })
> db.users.find()
{ "_id" : ObjectId("59116e3b52ae922ad8a03686"), "userid" : "myung", "name" : "myung je sang" }
{ "_id" : ObjectId("59116e5152ae922ad8a03687"), "userid" : "myung", "name" : "myung je sang" }
> db.users.insert({ userid:"myung2" , name:"myung je sang", gender:"man"})
WriteResult({ "nInserted" : 1 })
> db.users.find()
{ "_id" : ObjectId("59116e3b52ae922ad8a03686"), "userid" : "myung", "name" : "myung je sang" }
{ "_id" : ObjectId("59116e5152ae922ad8a03687"), "userid" : "myung", "name" : "myung je sang" }
{ "_id" : ObjectId("59116e6952ae922ad8a03688"), "userid" : "myung2", "name" : "myung je sang", "gender" : "man" }
> db.users.insert({ _id:1, userid:"myung3" , name:"myung je sang", gender:"man"})
WriteResult({ "nInserted" : 1 })
> db.users.find()
{ "_id" : ObjectId("59116e3b52ae922ad8a03686"), "userid" : "myung", "name" : "myung je sang" }
{ "_id" : ObjectId("59116e5152ae922ad8a03687"), "userid" : "myung", "name" : "myung je sang" }
{ "_id" : ObjectId("59116e6952ae922ad8a03688"), "userid" : "myung2", "name" : "myung je sang", "gender" : "man" }
{ "_id" : 1, "userid" : "myung3", "name" : "myung je sang", "gender" : "man" }
> db.users.insert({ _id:1, userid:"myung3" , name:"myung je sang", gender:"man"})
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 11000,
"errmsg" : "E11000 duplicate key error collection: test.users index: _id_ dup key: { : 1.0 }"
}
})
> db.users.save({ _id:1, userid:"myung3" , name:"myung je sang", gender:"man"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
> db.users.save({ _id:1, userid:"myung4" , name:"myung je sang", gender:"man"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.users.find()
{ "_id" : ObjectId("59116e3b52ae922ad8a03686"), "userid" : "myung", "name" : "myung je sang" }
{ "_id" : ObjectId("59116e5152ae922ad8a03687"), "userid" : "myung", "name" : "myung je sang" }
{ "_id" : ObjectId("59116e6952ae922ad8a03688"), "userid" : "myung2", "name" : "myung je sang", "gender" : "man" }
{ "_id" : 1, "userid" : "myung4", "name" : "myung je sang", "gender" : "man" }
- 컬렉션단위의 조회성능이 더 좋음
- 인덱싱은 컬렉션 단위
> db.stocks.find()
{ "_id" : ObjectId("4d094f58c96767d7a0099d49"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-03-07", "open" : 8.4, "high" : 8.75, "low" : 8.08, "close" : 8.55, "volume" : 275800, "adj close" : 8.55 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4a"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-03-06", "open" : 9.03, "high" : 9.03, "low" : 8.41, "close" : 8.56, "volume" : 353600, "adj close" : 8.56 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4b"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-03-05", "open" : 9.12, "high" : 9.17, "low" : 8.85, "close" : 9.12, "volume" : 156200, "adj close" : 9.12 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4c"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-03-04", "open" : 9.05, "high" : 9.14, "low" : 8.73, "close" : 9.09, "volume" : 420700, "adj close" : 9.09 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4d"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-03-03", "open" : 9.68, "high" : 9.69, "low" : 8.98, "close" : 9.15, "volume" : 407200, "adj close" : 9.15 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4e"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-29", "open" : 9.52, "high" : 9.76, "low" : 9.25, "close" : 9.75, "volume" : 269400, "adj close" : 9.75 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4f"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-28", "open" : 9.7, "high" : 10.1, "low" : 9.67, "close" : 9.7, "volume" : 150200, "adj close" : 9.7 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d50"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-27", "open" : 9.8, "high" : 10.25, "low" : 9.58, "close" : 9.76, "volume" : 190700, "adj close" : 9.76 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d51"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-26", "open" : 9.4, "high" : 9.94, "low" : 9.25, "close" : 9.91, "volume" : 205100, "adj close" : 9.91 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d52"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-25", "open" : 9.84, "high" : 10, "low" : 9.37, "close" : 9.79, "volume" : 352200, "adj close" : 9.79 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d53"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-22", "open" : 10.19, "high" : 10.19, "low" : 9.75, "close" : 10, "volume" : 305400, "adj close" : 10 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d54"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-21", "open" : 10.42, "high" : 10.53, "low" : 10.25, "close" : 10.42, "volume" : 126100, "adj close" : 10.42 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d55"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-20", "open" : 9.91, "high" : 10.49, "low" : 9.91, "close" : 10.33, "volume" : 99700, "adj close" : 10.33 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d56"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-19", "open" : 10.31, "high" : 10.4, "low" : 9.94, "close" : 10.01, "volume" : 170100, "adj close" : 10.01 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d57"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-15", "open" : 10.08, "high" : 10.29, "low" : 9.93, "close" : 10.15, "volume" : 259700, "adj close" : 10.15 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d58"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-14", "open" : 9.98, "high" : 10.84, "low" : 9.98, "close" : 10.13, "volume" : 461300, "adj close" : 10.13 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d59"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-13", "open" : 9.64, "high" : 9.98, "low" : 9.57, "close" : 9.98, "volume" : 78700, "adj close" : 9.98 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d5a"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-12", "open" : 9.53, "high" : 9.62, "low" : 9.46, "close" : 9.53, "volume" : 60500, "adj close" : 9.53 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d5b"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-11", "open" : 9.51, "high" : 9.62, "low" : 9.17, "close" : 9.46, "volume" : 225800, "adj close" : 9.46 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d5c"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-08", "open" : 9.87, "high" : 9.99, "low" : 9.48, "close" : 9.49, "volume" : 114800, "adj close" : 9.49 }
> db.stocks.find({"stock_symbol": "GOOG"}).sort({date:1}).explain("executionStats")
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "nasdaq.stocks",
"indexFilterSet" : false,
"parsedQuery" : {
"stock_symbol" : {
"$eq" : "GOOG"
}
},
"winningPlan" : {
"stage" : "SORT",
"sortPattern" : {
"date" : 1
},
"inputStage" : {
"stage" : "SORT_KEY_GENERATOR",
"inputStage" : {
"stage" : "COLLSCAN",
"filter" : {
"stock_symbol" : {
"$eq" : "GOOG"
}
},
"direction" : "forward"
}
}
},
"rejectedPlans" : [ ]
},
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 894,
"executionTimeMillis" : 2051,
"totalKeysExamined" : 0,
"totalDocsExamined" : 4308303,
"executionStages" : {
"stage" : "SORT",
"nReturned" : 894,
"executionTimeMillisEstimate" : 1711,
"works" : 4309201,
"advanced" : 894,
"needTime" : 4308306,
"needYield" : 0,
"saveState" : 33710,
"restoreState" : 33710,
"isEOF" : 1,
"invalidates" : 0,
"sortPattern" : {
"date" : 1
},
"memUsage" : 163584,
"memLimit" : 33554432,
"inputStage" : {
"stage" : "SORT_KEY_GENERATOR",
"nReturned" : 894,
"executionTimeMillisEstimate" : 1650,
"works" : 4308306,
"advanced" : 894,
"needTime" : 4307411,
"needYield" : 0,
"saveState" : 33710,
"restoreState" : 33710,
"isEOF" : 1,
"invalidates" : 0,
"inputStage" : {
"stage" : "COLLSCAN",
"filter" : {
"stock_symbol" : {
"$eq" : "GOOG"
}
},
"nReturned" : 894,
"executionTimeMillisEstimate" : 1608,
"works" : 4308305,
"advanced" : 894,
"needTime" : 4307410,
"needYield" : 0,
"saveState" : 33710,
"restoreState" : 33710,
"isEOF" : 1,
"invalidates" : 0,
"direction" : "forward",
"docsExamined" : 4308303
}
}
}
},
"serverInfo" : {
"host" : "jmyung",
"port" : 27017,
"version" : "3.4.4",
"gitVersion" : "888390515874a9debd1b6c5d36559ca86b44babd"
},
"ok" : 1
}
------------------------------------------------------------------------------------------------------
> db.stocks.count()
4308303
> db.stocks.find()
{ "_id" : ObjectId("4d094f58c96767d7a0099d49"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-03-07", "open" : 8.4, "high" : 8.75, "low" : 8.08, "close" : 8.55, "volume" : 275800, "adj close" : 8.55 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4a"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-03-06", "open" : 9.03, "high" : 9.03, "low" : 8.41, "close" : 8.56, "volume" : 353600, "adj close" : 8.56 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4b"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-03-05", "open" : 9.12, "high" : 9.17, "low" : 8.85, "close" : 9.12, "volume" : 156200, "adj close" : 9.12 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4c"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-03-04", "open" : 9.05, "high" : 9.14, "low" : 8.73, "close" : 9.09, "volume" : 420700, "adj close" : 9.09 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4d"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-03-03", "open" : 9.68, "high" : 9.69, "low" : 8.98, "close" : 9.15, "volume" : 407200, "adj close" : 9.15 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4e"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-29", "open" : 9.52, "high" : 9.76, "low" : 9.25, "close" : 9.75, "volume" : 269400, "adj close" : 9.75 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d4f"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-28", "open" : 9.7, "high" : 10.1, "low" : 9.67, "close" : 9.7, "volume" : 150200, "adj close" : 9.7 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d50"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-27", "open" : 9.8, "high" : 10.25, "low" : 9.58, "close" : 9.76, "volume" : 190700, "adj close" : 9.76 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d51"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-26", "open" : 9.4, "high" : 9.94, "low" : 9.25, "close" : 9.91, "volume" : 205100, "adj close" : 9.91 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d52"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-25", "open" : 9.84, "high" : 10, "low" : 9.37, "close" : 9.79, "volume" : 352200, "adj close" : 9.79 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d53"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-22", "open" : 10.19, "high" : 10.19, "low" : 9.75, "close" : 10, "volume" : 305400, "adj close" : 10 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d54"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-21", "open" : 10.42, "high" : 10.53, "low" : 10.25, "close" : 10.42, "volume" : 126100, "adj close" : 10.42 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d55"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-20", "open" : 9.91, "high" : 10.49, "low" : 9.91, "close" : 10.33, "volume" : 99700, "adj close" : 10.33 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d56"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-19", "open" : 10.31, "high" : 10.4, "low" : 9.94, "close" : 10.01, "volume" : 170100, "adj close" : 10.01 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d57"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-15", "open" : 10.08, "high" : 10.29, "low" : 9.93, "close" : 10.15, "volume" : 259700, "adj close" : 10.15 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d58"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-14", "open" : 9.98, "high" : 10.84, "low" : 9.98, "close" : 10.13, "volume" : 461300, "adj close" : 10.13 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d59"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-13", "open" : 9.64, "high" : 9.98, "low" : 9.57, "close" : 9.98, "volume" : 78700, "adj close" : 9.98 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d5a"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-12", "open" : 9.53, "high" : 9.62, "low" : 9.46, "close" : 9.53, "volume" : 60500, "adj close" : 9.53 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d5b"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-11", "open" : 9.51, "high" : 9.62, "low" : 9.17, "close" : 9.46, "volume" : 225800, "adj close" : 9.46 }
{ "_id" : ObjectId("4d094f58c96767d7a0099d5c"), "exchange" : "NASDAQ", "stock_symbol" : "AACC", "date" : "2008-02-08", "open" : 9.87, "high" : 9.99, "low" : 9.48, "close" : 9.49, "volume" : 114800, "adj close" : 9.49 }
Type "it" for more
> db.stocks.count({stock_symbol:"AACC"})
1016
> db.stocks.count({stock_symbol:"AACC", close:{$lt: 300}})
1016
> db.stocks.count({stock_symbol:"GOOG", close:{$lt: 300}})
262
> db.stocks.find({stock_symbol:"GOOG", close:{$lt: 300}})
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d4f"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-10-14", "open" : 299.9, "high" : 300.23, "low" : 292.54, "close" : 296.14, "volume" : 8519100, "adj close" : 296.14 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d50"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-10-13", "open" : 302, "high" : 302, "low" : 290.68, "close" : 297.44, "volume" : NumberLong(10567700), "adj close" : 297.44 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d68"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-09-09", "open" : 297.28, "high" : 299.1, "low" : 296.56, "close" : 299.09, "volume" : 4390500, "adj close" : 299.09 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d69"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-09-08", "open" : 294.83, "high" : 299.28, "low" : 293.36, "close" : 295.39, "volume" : 6613300, "adj close" : 295.39 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d6a"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-09-07", "open" : 285.89, "high" : 295.5, "low" : 285.28, "close" : 294.87, "volume" : 7499500, "adj close" : 294.87 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d6b"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-09-06", "open" : 289, "high" : 289.39, "low" : 286.8, "close" : 287.11, "volume" : 4212300, "adj close" : 287.11 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d6c"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-09-02", "open" : 286.51, "high" : 289.99, "low" : 286.44, "close" : 288.45, "volume" : 3434500, "adj close" : 288.45 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d6d"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-09-01", "open" : 285.91, "high" : 287.5, "low" : 285, "close" : 286.25, "volume" : 2742100, "adj close" : 286.25 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d6e"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-31", "open" : 288.23, "high" : 288.5, "low" : 284.36, "close" : 286, "volume" : 5034000, "adj close" : 286 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d6f"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-30", "open" : 287.39, "high" : 289.51, "low" : 285.88, "close" : 287.27, "volume" : 4792000, "adj close" : 287.27 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d70"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-29", "open" : 282.24, "high" : 289.12, "low" : 282.24, "close" : 288.45, "volume" : 5903000, "adj close" : 288.45 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d71"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-26", "open" : 283.48, "high" : 285.02, "low" : 282.66, "close" : 283.58, "volume" : 3755300, "adj close" : 283.58 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d72"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-25", "open" : 282.55, "high" : 284, "low" : 279.97, "close" : 282.59, "volume" : 4376600, "adj close" : 282.59 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d73"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-24", "open" : 277.57, "high" : 284.75, "low" : 276.45, "close" : 282.57, "volume" : 8593100, "adj close" : 282.57 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d74"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-23", "open" : 276.16, "high" : 279.74, "low" : 274.12, "close" : 279.58, "volume" : 5821700, "adj close" : 279.58 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d75"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-22", "open" : 281.24, "high" : 281.47, "low" : 273.35, "close" : 274.01, "volume" : 6813000, "adj close" : 274.01 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d76"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-19", "open" : 280.99, "high" : 281.45, "low" : 279.62, "close" : 280, "volume" : 5542900, "adj close" : 280 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d77"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-18", "open" : 275.91, "high" : 280.5, "low" : 275, "close" : 279.99, "volume" : NumberLong(11872800), "adj close" : 279.99 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d78"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-17", "open" : 285.51, "high" : 286.57, "low" : 284, "close" : 285.1, "volume" : 3883300, "adj close" : 285.1 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0d79"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2005-08-16", "open" : 284.88, "high" : 287.79, "low" : 283.34, "close" : 285.65, "volume" : 7109200, "adj close" : 285.65 }
Type "it" for more
> db.stocks.find({stock_symbol:"GOOG", close:{$gt: 300}})
{ "_id" : ObjectId("4d094f7ec96767d7a02a0af6"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-03-07", "open" : 428.88, "high" : 440, "low" : 426.24, "close" : 433.35, "volume" : 8071800, "adj close" : 433.35 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0af7"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-03-06", "open" : 447.69, "high" : 453.3, "low" : 431.18, "close" : 432.7, "volume" : 7470100, "adj close" : 432.7 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0af8"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-03-05", "open" : 445.25, "high" : 454.17, "low" : 444, "close" : 447.7, "volume" : 7436600, "adj close" : 447.7 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0af9"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-03-04", "open" : 450.95, "high" : 453.36, "low" : 435.78, "close" : 444.6, "volume" : NumberLong(13621700), "adj close" : 444.6 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0afa"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-03-03", "open" : 471.51, "high" : 472.72, "low" : 450.11, "close" : 457.02, "volume" : 7554500, "adj close" : 457.02 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0afb"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-29", "open" : 471.87, "high" : 479.74, "low" : 464.65, "close" : 471.18, "volume" : 9425400, "adj close" : 471.18 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0afc"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-28", "open" : 470.5, "high" : 479.09, "low" : 467.36, "close" : 475.39, "volume" : 6586900, "adj close" : 475.39 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0afd"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-27", "open" : 460.13, "high" : 475.49, "low" : 459.64, "close" : 472.86, "volume" : NumberLong(10121900), "adj close" : 472.86 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0afe"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-26", "open" : 461.2, "high" : 466.47, "low" : 446.85, "close" : 464.19, "volume" : NumberLong(23287300), "adj close" : 464.19 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0aff"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-25", "open" : 505.95, "high" : 506.5, "low" : 485.74, "close" : 486.44, "volume" : 8350800, "adj close" : 486.44 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0b00"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-22", "open" : 502.06, "high" : 509, "low" : 497.55, "close" : 507.8, "volume" : 5515900, "adj close" : 507.8 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0b01"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-21", "open" : 512.85, "high" : 513.21, "low" : 499.5, "close" : 502.86, "volume" : 5677800, "adj close" : 502.86 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0b02"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-20", "open" : 503.51, "high" : 511.01, "low" : 498.82, "close" : 509, "volume" : 6662200, "adj close" : 509 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0b03"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-19", "open" : 534.94, "high" : 535.06, "low" : 506.5, "close" : 508.95, "volume" : 6350400, "adj close" : 508.95 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0b04"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-15", "open" : 528.31, "high" : 532.66, "low" : 524.33, "close" : 529.64, "volume" : 5240100, "adj close" : 529.64 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0b05"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-14", "open" : 538.35, "high" : 541.04, "low" : 531, "close" : 532.25, "volume" : 6476700, "adj close" : 532.25 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0b06"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-13", "open" : 522.5, "high" : 534.99, "low" : 518.69, "close" : 534.62, "volume" : 6624700, "adj close" : 534.62 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0b07"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-12", "open" : 523.39, "high" : 530.6, "low" : 513.03, "close" : 518.09, "volume" : 6662300, "adj close" : 518.09 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0b08"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-11", "open" : 520.52, "high" : 523.71, "low" : 513.4, "close" : 521.16, "volume" : 5826000, "adj close" : 521.16 }
{ "_id" : ObjectId("4d094f7ec96767d7a02a0b09"), "exchange" : "NASDAQ", "stock_symbol" : "GOOG", "date" : "2008-02-08", "open" : 509.41, "high" : 517.73, "low" : 508.7, "close" : 516.69, "volume" : 6828900, "adj close" : 516.69 }
Type "it" for more
>
3. 분석
db.stocks.distinct("stock_symbol", {close: {$gt:300}})
GO로 시작하는 종목명의 2006년 한해동안 평균종가와 최고종가
3-1. group함수이용
10000개 이상 처리 안됨 (10000개 미만은 m/r보다 좋은 선택)
> db.stocks.group({
... key : { stock_symbol : true },
... cond : { stock_symbol : /^GO/,
... date : {$gte : '2006-01-01', $lte : '2016-12-31'}
... },
... reduce : function(doc,prev) {
... if (doc.close > prev.maxClose)
... prev.maxClose = doc.close;
... prev.sum += doc.close;
... prev.count++;
... },
... initial : {sum:0, count:0, maxClose:0},
... finalize : function(prev) {
... prev.avg = prev.sum / prev.count;
... prev.max = prev.maxClose;
... delete prev.maxClose;
... delete prev.sum;
... delete prev.count;
... }
... })
[
{
"stock_symbol" : "GOAM",
"avg" : 5.132883211678831,
"max" : 10.3
},
{
"stock_symbol" : "GOLD",
"avg" : 25.65408759124087,
"max" : 55.65
},
{
"stock_symbol" : "GOLF",
"avg" : 7.4655319148936155,
"max" : 11.49
},
{
"stock_symbol" : "GOOD",
"avg" : 19.049215328467145,
"max" : 22.19
},
{
"stock_symbol" : "GOODO",
"avg" : 21.802142857142854,
"max" : 22.45
},
{
"stock_symbol" : "GOODP",
"avg" : 24.28254641909813,
"max" : 26.81
},
{
"stock_symbol" : "GOOG",
"avg" : 480.9729379562046,
"max" : 741.79
},
{
"stock_symbol" : "GORX",
"avg" : 3.8033941605839385,
"max" : 4.88
}
]
'dev > NoSQL 모델링' 카테고리의 다른 글
mongodb GUI client (0) | 2017.05.09 |
---|---|
정리 (0) | 2017.01.26 |
카산드라 (0) | 2017.01.25 |
NoSql 모델링 기법 (0) | 2017.01.25 |
Shard Cluster (1) | 2017.01.25 |