일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- c++
- nodeJS
- Machine Learning
- WebGL
- Statistics
- 빅데이터
- No SQL
- 빅 데이터
- 딥러닝
- 인공지능
- 우리들교회
- 빅데이타
- 통계
- data science
- 김양재 목사님
- probability
- Artificial Intelligence
- node.js
- 주일설교
- 몽고디비
- 김양재
- 김양재 목사
- 확률
- 데이터 과학
- openCV
- R
- MongoDB
- Big Data
- Deep learning
- 빅 데이타
- Today
- Total
목록No SQL (40)
Scientific Computing & Data Science
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앞서 "Cursors"를 다룬 글에서 도큐먼트 쿼리 시 "skip"을 통해 도큐먼트를 건너뛰는 것에 대해 알아본 바 있다. "skip" 연산자는 작은 규모의 도큐먼트에 대해서는 적당할 지 모르지만, 도큐먼트 규모가 커지면 건너뛰는 속도가 현저히 떨어진다. 이것은 MongoDB만의 문제가 아닌 거의 모든 데이터베이스에서 공통적으로 나타나는 현상이다.따라서, 큰 규모의 도큐먼트에서 도큐먼트를 건너뛰어 검색 결과를 받아올 때 "skip"은 반드시 피해야 한다. skip 없이 결과 표시하기다음과 같이 1 ~ 30000까지의 "cnt" 값을 가지는 도큐먼트를 생성해 보자: for(i=1; i var myCursor = db.count.find({cnt: {$gt: 20000}})..
Written by cinema4d이번 글에서는 "Cursors"에 대해 알아보도록 하겠다."Cursors"는 MongoDB가 find() 메써드를 통해 넘겨주는 결과의 집합이다.Cursors를 통해 클라이언트-사이드에서는 반복 처리 등 다양한 처리가 가능하다. DB가 넘겨주는 결과수를 제한할 수 있으며, 결과의 개수를 건너뛸 수 있으며, key 조합을 통해 결과를 분류하거나 검색 방향을 제어할 수 있는 등 기타 강력한 오퍼레이션을 구성할 수 있다.우선 간단한 예로써, 각 도큐먼트에 1에서 100까지의 정수를 저장하는 JavaScript를 작성해 보자: for(i=1; i myCursor { "_id" : ObjectId("52f381cc2d911bccacf21963"), "cnt" : 1 } { "_i..
Written by cinema4d이번 글에서는 "$where" 오퍼레이터에 대해 알아보도록 하겠다."$where" JavaScript의 표현 또는 JavaScript 함수 전체를 쿼리에 전달할 수 있는 오퍼레이터이다.설명을 위해 우선 다음 데이터를 준비하자. db.grade.insert({student_id : "01", korean : "A", english: "B", maths : "A+", science : "A" }) db.grade.insert({student_id : "02", korean : "B", english: "B", maths : "A+", science : "B" }) db.grade.insert({student_id : "03", korean : "C", english: "A+..
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, 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, ..
by Geol Choi | January 31, 2014이번 글에서는 findAndModify를 통해 도큐먼트를 업데이트하는 방법에 대해 알아보겠다. findAndModify는 제시된 기준의 아이템을 찾고 업데이트하는 일련의 과정을 한 번에 처리할 수 있는 편리한 명령이다. findAndModify 명령어의 인자에는 sort 기능이 있는데 지금까지 다룬 적이 없으므로 이 부분을 우선 이해하고 넘어가도록 하겠다.다음과 같이 데이터를 준비하자.db.tasks.insert({todo : "shopping", status : "READY", priority : "4"}) db.tasks.insert({todo : "studying Mongo DB", status : "READY", priority : "1"})..
by Geol Choi | January 30, 2014"update" 쿼리는 기본적으로 기준에 부합하는 첫번째 도큐먼트만 업데이트 한다. 즉 기준에 부합하는 도큐먼트가 더 있을 경우 부합하는 첫번째 도큐먼트를 제외한 나머지 도큐먼트의 내용은 그대로 유지된다. 만약 기준에 부합하는 모든 도큐먼트를 업데이트하려면 "update"의 네번째 파라미터를 "true"로 설정한다. 우선 테스트용 데이터를 다음과 같이 준비하는데 고객의 이름과 생일을 입력해 보자.db.customers.remove() db.customers.insert({name: "gchoi", birthday:"08/22"}) db.customers.insert({name: "jmpark", birthday:"04/02"}) db.customer..