가장 먼저 선을 그려보도록 하겠습니다.



  

 
    

  

선을 그릴때 다음과 같은 메서드를 사용합니다.


beginPath(), moveTo(), lineTo(), stroke()


beginPath()는 새로운 선을 그리겠다고 선언하는 것이고 moveTo()는 시작좌표로 시작점을 나타내고


lineTo()는 끝나는 좌표로 어디까지 그리는지 나타냅니다.


마지막으로 stroke()메서드를 써야 canvas위에 그려지게 됩니다.

'canvas' 카테고리의 다른 글

[canvas] text 입력하기  (0) 2013.07.31
[canvas] arc 원호 그리기  (0) 2013.07.30
[canvas] line color  (0) 2013.07.30
[canvas] line width  (0) 2013.07.30
[canvas] canvas template  (0) 2013.07.30

아래는 canvas template를 나타냅니다


canvas 테그를 선언후 id와 높이와 넓이를 지정해 줍니다


우리는 이 canvas라고 정의한 공간안에서 선과, 도형 들을 그리게 됩니다.


  

  
  


'canvas' 카테고리의 다른 글

[canvas] text 입력하기  (0) 2013.07.31
[canvas] arc 원호 그리기  (0) 2013.07.30
[canvas] line color  (0) 2013.07.30
[canvas] line width  (0) 2013.07.30
[canvas] line 그리기  (0) 2013.07.30

그동안 이상없이 잘 실행 되다가


다음과 같은 메시지를 보이면 실행이 되지 않았다.


couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91



해결 방법은 


다음 경로로 이동하여


/usr/local/var/log/mongodb/mongo



mongod.lock파일을 삭제 하고 다시 실행하니 정상적으로 실행 되었다.


shift+command+g


아래와 같이 경로를 입력해 이동 할 수 있다.



줄단위 이동 : shift+option+방향키


함수단위 이동: shift+command+방향키

데이터를 저장, 수정해 보았습니다.


이번에는 삭제에 대해 알아보겠습니다.


삭제는 remove()drop()메서드가 있습니다.


현재 데이터는 다음과 같이 2개 가 있습니다.



첫번째 데이터를 삭제해 보겠습니다



삭제후 출력해보면 첫번째 데이터가 삭제된걸 확인 할 수 있습니다.


남아있는 데이터도 삭제해보겠습니다.



삭제후 출력해 보면 데이터가 없음을 확인할 수 있습니다.


데이터가 삭제 됐지만 아직 collection은 남아있습니다.


collection까지 삭제하고 싶다면 drop()메서드를 사용합니다.



위와 같이 drop메서드를 사용하면 데이터와 collection까지 삭제 됩니다.

collection생성까지 해보았습니다.


이번에는 데이터를 삽입, 수정, 삭제에 대해 알아보겠습니다.


데이터 삽입에는 insert()save()메소드를 사용합니다.


mongodb는 json(JavaScript Object Notation)형태로 데이터를 저장합니다. 


json 관련 링크: http://www.json.org/json-ko.html


inser()t와 save()메서드를 사용하여 데이터를 저장해 보고 차이점을 알아보겠습니다.


people 콜랙션까지 생성했다는 가정하에 시작하겠습니다.


다음과 같이 입력합니다.

db.people.insert({name:'Noh JunHyuk', gender:'male'})

db.people.save({name:'Noh JunHyuk', gender:'male'})


그리고 다음과 같이 검색 봅니다.

검색은 find()메서드를 사용합니다.


db.people.find()

다음과 같이 저장한 데이터가 출력됩니다.


_id라는 데이터가 자동으로 부여된걸 확인 할 수 있을겁니다. 다른 db를 공부하셨다면 주키라고 생각하면 됩니다. 


이제 insert()와 save()의 차이점을 살펴봅시다.


insert()메서드를 사용해 저장한 _id의 값을 가져와 저장해 보겠습니다.


그러면 다음과 같이 오류가 발생합니다.


동일한 _id값을 저정하려고 한다면 오류가 발생합니다.


다음으로 save()를 사용해 저장하고 찾아보면


다음과 같이 값이 저장된걸 확인할 수 있습니다.


save()는 _id가 존재한다면 오류를 발생시키지 않고 그 값을 수정합니다.


정리하면 save()메서드는 _id값이 존재하지 않다면 insert기능을 하여 데이터를 저장하고 


_id값이 존재하면 그 docuement에 데이터를 덮어써줍니다.(수정합니다.)




다음으로 수정에 대해 알아보겠습니다.


수정에는 update()와 save()메서드가 있습니다. save()는 위에서 살펴보았습니다.


save()는 기존의 데이터를 위에 덮어쓰는 방식이라서 기존 데이터가 사라집니다.


필드가 6개가 존재하고 save()메서드를 사용하여 2개의 필드를 저장한다면 6개 필드는 모두 사라지고 새로 저장하는 2개의 필드만 저장됩니다.


다시말하자면 save()메서드는 document단위로 데이터를 변경합니다.


update()메소드를 사용하면 특정 필드만 수정할 수 있습니다.


다음과 같이 수정하고 출력해보면



성별만 바뀐걸 확인할 수 있습니다.



정리해 보자면


삽입시 insert()와 save()

insert: _id가 동일한 값을 저장하려 한다면 오류 발생

save: _id가 동일해도 저장한다(수정한다) 기존에 저장된 데이터위에 덮어쓴다.


수정시 update()와 save()

update: 특정 필드만 수정할 수 있다.

save: 필드단위로 수정되지 않고 데이터를 덮어쓰므로 이전 데이터는 사라진다.


데이터 삽입과 수정을 하면서 find()메서드를 사용해 보았습니다.


find()메서드를 좀 더 알아보겠습니다.


collection을 생성하고 데이터를 저장해 보겠습니다.


db.createCollection('people') //콜랙션 생성


//데이터 저장

db.people.insert({name:'Noh JunHyuk', gender:'male'})

db.people.insert({name:'Jun YunJe', gender:'female'})

db.people.insert({name:'Lee SukJun', gender:'male'})

db.people.insert({name:'Ma MiYoung', gender:'female'})

db.people.insert({name:'Goh MinSub', gender:'male'})

db.people.insert({name:'Kim UiJin', gender:'male'})

db.people.insert({name:'Noh JunYoung', gender:'male'})


find메서드를 사용해 검색하면 다음과 같이 출력됩니다.



원하는 데이터를 골라 출력해 보겠습니다.


이름이 Noh JunHyuk인 데이터만 출력해 본다면



성별인 남자인 데이터만 출력해 본다면





원하지 않는 필드를 제외하고 출력해 보겠습니다.



위와 같이 find()메서드의 두번째 매개변수에 원하지 않는 필드 이름을 적고 0이나 false로 지정합니다.


성별은 남자에 name속성을 출력하지 않을려 한다면



위와 같이 잘 출력되는걸 확인할 수 있습니다.




한 객체만 검색하고 싶을때는 findOne()메서드를 사용합니다.


findOne()메서드를 사용하면 find()메서드를 사용해 추출할 수 있는 배열의 가장 첫번째 에 위치한 데이터를 추출합니다.




데이터를 정렬하려면 sort()메서드를 사용합니다.


이름을 오름차순으로 정렬한다면



내림차순으로 정렬한다면



+ Recent posts