일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- probability
- data science
- node.js
- 빅 데이터
- 김양재
- openCV
- WebGL
- 통계
- Machine Learning
- MongoDB
- 우리들교회
- 주일설교
- 김양재 목사님
- 김양재 목사
- 데이터 과학
- c++
- 빅 데이타
- Artificial Intelligence
- nodeJS
- Big Data
- Statistics
- 확률
- 딥러닝
- 인공지능
- R
- 빅데이타
- No SQL
- 몽고디비
- 빅데이터
- Deep learning
- Today
- Total
목록Mongo DB (34)
Scientific Computing & Data Science
by Geol Choi | March 6, 2014이번 글에서는 비교적 큰 사이즈의 바이너리 파일을 저장하는 메커니즘인 "GridFS"에 대해 알아보도록 하겠다.예를 들어, 블로그 같이 글을 작성하는 사이트를 만들어 DB와 연동할 경우 텍스트만이 아닌 이미지, 또는 특정 어플리케이션의 바이너리를 저장해야 할 것이다. MongoDB는 이러한 바이너리 파일을 효율적으로 관리하는 메커니즘을 제공하는데 이것이 GridFS이다. GridFS를 사용해서 파일을 저장해야 하는 이유를 들면 다음과 같다:GridFS는 MongoDB를 위해 설정한 "replication"이나 "autosharding"을 활용한다. 이는 패일오버(Failover) 및 스케일아웃(Scale-out)을 하는데 매우 쉽다. (Replicatio..
by Geol Choi | March 2, 2014앞의 글에서 설명했던 집합(aggregation) 연산자인 count, distinct, group으로 할 수 있는 모든 것 뿐만 아니라 더 많은 일들을 맵리듀스를 통해 할 수 있습니다. 특히 다중의 서버를 통해 집합 연산자를 쉽게 병렬로 처리할 수 있습니다. 맵리듀스는 문제를 여러 개의 덩어리로 분할하고, 각 덩어리를 다양한 머쉰으로 전송하고, 각 머쉰이 문제의 각 부분을 해결하도록 합니다. 모든 머쉰에서 처리가 모두 마무리되면 솔루션 결과를 모두 모아서 전체적인 솔루션으로 합칩니다.맵리듀스는 다음과 같은 절차로 처리됩니다.(1) 첫번째 단계는 "맵(Map)"이며, 이는 연산을 컬렉션 내의 각 도큐먼트로 매핑하는 것입니다. 이 연산은 "아무 것도 하지 ..
by Geol Choi | February 16, 2014MongoDB는 복잡한 데이터 분석을 위해 다양한 맵리듀스(Map Reduce) 등 다양한 집합(Aggregation) 도구를 제공한다. countcount 연산자는 컬렉션 내의 도큐먼트 개수를 파악할 수 있는 메써드이다.다음과 같이 "people" 컬렉션에 3개의 도큐먼트를 추가한 후,> db.people.insert({username: "user1"}); > db.people.insert({username: "user2"}); > db.people.insert({username: "user3"}); count() 메써드를 이용하여 개수를 구하면 다음과 같다:> db.people.find().pretty() { "_id" : ObjectId("5..
by Geol Choi | February 9, 2014이전 글에서 약속하였듯이 이번 글에서는 "$snapshot" 쿼리 옵션에 대해서 자세히 알아보도록 하겠다. 일반적인 데이터 처리 절차는 다음과 같다: MongoDB로부터 도큐먼트를 불러오고, 이에 대한 처리를 한 후, 처리에 대한 결과를 다시 저장한다. 예를 들어 다음 코드를 살펴보자.cursor = db.myCollection.find(); while (cursor.hasNext()) { var doc = cursor.next(); doc = process(doc); db.myCollection.save(doc); } 위의 코드 내용을 살펴보면,변수 "cursor"에 myCollection으로부터 검색된 도큐먼트를 저장하였으며,"cursor"에 저..
Written by cinema4d이번 글에서는 기타 쿼리 연산자들에 대해 알아 보도록 하겠다. 다음과 같은 도큐먼트를 생성한다. for(i = 1; i < 101; i++) { var myRandom = Math.floor(100 * Math.random()); if(myRandom < 21) db.myCollection.insert({name: "dog", random: Math.floor(Math.random()*100)}) else if(myRandom < 41) db.myCollection.insert({name: "cat", random: Math.floor(Math.random()*100)}) else if(myRandom < 61) db.myCollection.insert({name: "p..
Written by cinema4d임베드 된 도큐먼트에 대한 쿼리 방법은 크게 두 가지로 요약할 수 있다: (1) 전체 도큐먼트에 대한 쿼리(2) 개별 키(key)/값(value) 쌍을 이용한 쿼리 상기 두 가지 방법에 대해 각각 알아보도록 하겠다. 1. 전체 도큐먼트에 대한 쿼리우선, 다음 명령을 통해 임베드 된 도큐먼트를 준비한다.> db.users.drop() true > db.users.insert({name: {first: "john", last: "kennedy"}}) > db.users.findOne() { "_id" : ObjectId("52edaa32f97299c19188c2dc"), "name" : { "first" : "john", "last" : "kennedy" } }"name" ..
by Geol Choi | February 1, 2014이번 글에서는 "$slice" 오퍼레이터에 대해 알아 보도록 하겠다. "$slice"는 특정 key의 array 아이템들 중 일부분을 추출하는데 사용된다.가령, 다음과 같이 아이템이 있다고 하자.> db.food.drop() > db.food.insert({"fruit": ["apple", "orange", "plum", "banana", "peach", "mango", "pineapple", "grape", "melon", "water melon", "cherry", "kiwi", "strawberry"]}) "fruit" 중 처음 다섯개의 아이템을 추출하려면 다음과 같은 입력한다.> db.food.find( {}, { fruit: { $slice..
by Geol Choi | February 1, 2014"$size"는 array의 크기를 이용하여 검색할 수 있는 오퍼레이터이다.우선 다음과 같이 아이템을 준비하자.> db.food.drop() > db.food.insert({"_id" : 1, "fruit" : ["apple", "banana", "peach"]}) > db.food.insert({"_id" : 2, "fruit" : ["apple", "kumquat", "orange"]}) > db.food.insert({"_id" : 3, "fruit" : ["cherry", "banana", "apple"]}) > db.food.insert({"_id" : 4, "fruit" : ["pineapple", "plum"]}) ID 1, 2, 3에 ..
by Geol Choi | February 2, 2014우선 다음과 같이 "food" 컬렉션에 array 타입으로 도큐먼트를 추가한다:> db.food.drop() > db.food.insert({"_id" : 1, "fruit" : ["apple", "banana", "peach"]}) > db.food.insert({"_id" : 2, "fruit" : ["apple", "kumquat", "orange"]}) > db.food.insert({"_id" : 3, "fruit" : ["cherry", "banana", "apple"]}) "apple"과 "banana" 모두를 포함하는 도큐먼트는 ID 1과 ID 3이다. "$all"을 통해 이 두 가지 모두를 포함하는 도큐먼트를 검색해 보자.> db.f..
by Geol Choi | February 1, 2014find 쿼리는 지금까지 다룬 내용에서 숱하게 많이 사용된 쿼리이다.가장 기본적인 쿼리 중 하나로서 검색 조건에 대해 좀 더 알아보도록 하겠다.우선 다음과 같이 데이터를 준비하자.> db.customers.drop() > db.customers.insert({name: "gchoi", age: 37, birthday: "08/22", email: "cinema4dr12@gmail.com"}) > db.customers.insert({name: "jmpark", age: 25, birthday: "04/02", email: "raspberry@gmail.com"}) > db.customers.insert({name: "tjkwak", age: 32, ..