MongoDB 21

빠르게 훝어 보는 node.js - mongoose 스키마와 유용한 기능

빠르게 훝어 보는 node.js - mongoose 스키마와 유용한 기능 조대협 (http://bcho.tistory.com) 지난번 mongoose 에 대한 간략한 소개 글 http://bcho.tistory.com/1094 에 이어서 오늘은 mongoose 스키마와, 기타 유용한 기능에 대해서 소개하고자 한다. 쿼리 간단한 삽입,삭제,수정,조회 쿼리이외에 조금 더 향상된 쿼리를 살펴보자.자세한 쿼리 사용 방법은 http://mongoosejs.com/docs/documents.html 를 참고하면 된다. 몇 가지 쿼리들을 살펴보면 var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/mydb'); var user..

빠르게 훝어 보는 node.js - mongoose ODM 을 이용한 MongoDB 연동

빠르게 훝어 보는 node.js - mongoose ODM 을 이용한 MongoDB 연동 조대협 (http://bcho.tistory.com) Mongoose는 mongodb 기반의 node.js용 ODM (Object Data Mapping) 프레임웍이다. 이미 앞에서 monk를 이용한 mongodb 연결 방식에 대해서 알아보았는데, mongoose는 무엇인가? 쉽게 생각하면 monk를 자바에서 JDBC 드라이버로 직접 데이타 베이스에 연결하여 SQL을 실행한 거라면, monggose는 Hibernate/Mybatis와 같이 OR Mapper의 개념이다. 직접 SQL을 실행하는 것이 아니라 node.js의 자바스크립트 객체를 mongodb의 도큐먼트와 맵핑 시켜 주는 개념이다.이런ODM의 개념은 웹 프..

빠르게 훝어 보는 node.js - monk 모듈을 이용한 mongoDB 연결

monk 모듈을 이용한 mongoDB 연결 조대협 (http://bcho.tistory.com) mongoDB 기반의 개발을 하기 위해서 mongoDB를 설치한다. https://www.mongodb.org/ 에서 OS에 맞는 설치 파일을 다운로드 받아서 설치한다.설치가 된 디렉토리에 들어가서 설치디렉토리 아래 ‘./data’ 라는 디렉토리를 만든다. 이 디렉토리는 mongoDB의 데이타가 저장될 디렉토리이다. mongoDB를 구동해보자. % ./bin/mongod --dbpath ./data Figure 1 mongoDB 구동화면 구동이 끝났으면 mongoDB에 접속할 클라이언트가 필요하다. DB에 접속해서 데이타를 보고 쿼리를 수행할 수 있는 클라이언트가 필요한데, 여러 도구가 있지만 많이 사용되는 ..

IBM 클라우드 bluemix(블루믹스) 소개

IBM 블루믹스 소개 PaaSIBM 블루믹스는 IBM에서 제공하는 PaaS(Platform As A Service) 클라우드 서비스이다. 아마존과 같은 서비스가 VM을 제공하는 IaaS(Infra as a service)라면, 블루믹스는 node.js, Java와 같은 런타임을 미리 깔아놓고, 거기에 소스코드를 넣어서 돌리는 구조이다. IaaS의 경우 Linux나 Windows Server와 같은 OS를 VM 기반으로 제공하기 때문에 직접 미들웨어를 설치해서 사용해야 하지만, PaaS의 경우 이미 설치된 미들웨어 위에 코드만 돌리면되기 때문에, 아무래도 관리가 편리하다. 그러면 왜 PaaS인가?얼마전까지만 해도, 개발 트렌드의 중심은 기업체에서 개발하는 B2C서비스였다. 페이스북이나 네이버와 같은 서비스..

빠르게 훝어 보는 node.js - #7 mongoose ODM 을 이용한 MongoDB 연동

빠르게 훝어보는 node.js#7- mongoose ODM 을 이용한 MongoDB 연동조대협 (http://bcho.tistory.com) 계정본이 http://bcho.tistory.com/1094 올라와 있습니다. Mongoose ODM을 이용한 MongoDB의 연동Mongoose는 MongoDB 기반의 nodejs용 ODM (Object Data Mapping) 프레임웍이다. 앞에서 mongo-native에 대해서 알아봤는데, 그렇다면 mongoose는 무엇인가? 쉽게 생각하면 mongo-native는 JDBC 드라이브러를 이용한 데이타 베이스 프로그래밍이고, mongoose는 자바의 JPA/Hibernate/MyBatis와 같은 OR Mapper와 같은 개념이다. 즉 mongodb 내의 데이타를..

빠르게 훝어 보는 node.js - #6 MongoDB 연동 (mongo-native)

빠르게 훝어보는 node.js#6- mongo-native 모듈을 이용한 MongoDB 연동조대협 (http://bcho.tistory.com 아래 글은 오래되서 monk를 이용한 방식으로 새로운 글을 작성하였습니다.새 글은 node.js 4.x , express 4.x 에서 기동하도록 작성되었습니다.링크 : http://bcho.tistory.com/1080Persistence 연동node.js는 DB나 NoSQL등의 연동을 지원하는데, 이 역시 철저하게 non-blocking io 방식으로 동작한다. 즉 db 연결 socket을 열어서 query를 던져놓고, query 결과가 오면 이벤트를 받아서 callback 함수로 처리하는 순서이다.그러면 여기서는 몇가지 persistence 연동 방식에 대해서..

CouchDB 강의 내용 정리

CouchDB Overview 어제 SSAG 에서 정명훈 이사가 강의한 CouchDB에 대한 내용 정리 CouchDB 일반 특징CouchDB Apache 프로젝트로 MongoDB와 같은 Document DB의 형태를 띄며, NOSQL CAP이론중 AP 에 해당 한다. (장애에 매우 강하다.) 단 Consistency는 Eventual Consistency를 제공한다. (버전으로 하는 방식), Eventual Consistency 모델이기 때문에 Locking을 사용하지 않는다. (Optimistic Lock) 유사 프로젝트유사 프로젝트로 CouchBase와 BigCouch, Cloudant등이 있다.CouchBase는 memcached와 CouchDB를 합쳐놓은 제품으로, 앞단에 캐쉬가 있어서 성능이 매..

MultiThread로 RabbitMQ에서 메세지를 읽어서 MongoDB에 쓰는 예제 (Python)

import pikaimport astimport pymongoimport datetimeimport loggingimport timeimport sys,traceback,socket,threadingfrom datetime import datetimefrom time import sleep # configurationMONGODB_NAME = "terrydb"HOSTNAME = ':'+socket.gethostname()QUEUE_NAME = 'hello'MONGODB_URL= 'mongodb://localhost'RABBITMQ_URL='localhost' LOG_FORMAT = ('[%(levelname)s] %(asctime)s %(name)s : %(message)s')LOGGER = loggi..

Python을 이용한 간단한 mongodb insert 예제

Python을 이용한 간단한 mongodb insert 예제 1. easy_install.exe를 이용하여, mongodb python driver인 pymongo를 설치 2. 코드 작성 connection얻고, db선택하고,collection(여기서는 users테이블) 선택하면되고, insert,update등은 기존 mongodb script와 유사함. 에러 처리는 아래와 같이 try,except 사용 import sys import pymongo connection = pymongo.MongoClient("mongodb://localhost") db = connection.terrydb users = db.users doc = {'_id':'myid','firstname':'Terry','lastna..