반응형

전체 글 119

MongoDB Remove Documents

다큐먼트를 삭제한다. 1. db.things.remove({}); // removes all 2. db.things.remove({n:1}); // removes all where n == 1 위의 2번에서 remove 명령은 매칭된 모든 다큐먼트를 삭제한다. 따라서 하나의 다큐먼트를 삭제할 경우는 옵션을 넣어준다. db.things.remove({n:1}, {justOne : true}); atomic 연산을 위해서는 다음과 같은 옵션을 준다. db.videos.remove( { rating : { $lt : 3.0 }, $atomic : true } ) ** php 드라이버를 사용하여 삭제시 주의점. php 드라이버 에서는 삭제시 하나만 삭제되는것이 디폴트로 되어있다. $collection->remo..

MongoDB 2011.10.13

MongoDB Update Documents

이번에는 저장되어 있는 데이터를 업데이트하는 방법이다. 업데이트는 update 함수를 이용한다. update() 함수 몽고디비의 update()함수를 이용한다. 여기에 4개의 아규먼트가 들어간다. criteria, objNew, upsert, multi criteria 업데이트 하고싶은 레코드를 쿼리하는데 사용된다. objNew 업데이트할 데이터를 위해 사용 upsert 업데이트 하고픈 해당 레코드가 있으면, 그레코드값을 업데이트하고, 없으면 새로 만들어서 업데이트한다. multi 업데이트하기 위해 매칭된 모든 다큐먼트를 업데이트 하거나, 아니면 하나의 다큐먼트만 업데이트 한다. 디폴트는 하나의 다큐먼트만 업데이트 함. $ 오퍼레이터로 동작함. 쉘에서의 예 db.media.update( { "Title"..

MongoDB 2011.10.13

MongoDB 리눅스 PHP 드라이버 설치

몽고디비를 PHP에서 접속하여 사용하려면, PHP 드라이버가 필요하다. 웹서버로 사용하는 서버에 접속하여 PHP드라이버를 설치한다. - 리눅스에 PHP드라이버 설치 $sudo pecl install mongo 실행 후, php.ini 파일에 다음을 추가시킨다. extension=mongo.so 그리고 아파치 리스타트 시킴. service apache2 restart (센트OS도 아파치 리스타트 명령만 다를뿐, 똑같다) 위와 같이 설치하면, PHP 에서 몽고디비 작업을 할 수 있다. PHP로 몽고디비 접속, 쿼리 등의 설명은 다음을 참고하면 됨. http://us.php.net/manual/en/book.mongo.php

MongoDB 2011.10.13

MongoDB Replica-Set

- Replica-Set 리플리카셋 설정이란, 마스터와 슬레이브들로 구성하는 것을 말한다. 여기서 아비터란 서버를 추가함으로써, 마스터와 슬레이브의 heartbeat를 체크하고, 마스터가 장애가 났을시 슬레이브들 중 하나를 마스터로 만든다. 따라서 마스터, 슬레이브들, 아비터 서버로 구성하는게 HA구성에 있어서 가장 실용적이라 생각한다. 마스터 : read, write를 수행함. 슬레이브들 : 마스터의 데이터를 복제하여 가지고 있음. 아비터 : 마스터와 슬레이브를 체크하고, 장애시 마스터 선출. 리플리카셋의 장점은 장애상황에 유연하게 대처할 수 있다는 것 뿐만 아니라, read 의 load 를 분산시킬수 있다는 것 또한 장점이다. 즉, 디폴트는 마스터 만이 read, write를 수행하고, 슬레이브들은 ..

MongoDB 2011.10.13

몽고DB 란?

몽고DB는 기존의 관계형 데이터베이스가 아니다. 관계형 DB의 테이블, 스키마, SQL, row 라는 컨셉이 없다. 또한 트랜잭션이나 ACID, join, foreign key등도 가지고 있지 않다. 그렇다면 몽고DB의 특징은 무엇인가. Document-oriented DB 다. 즉 기존 관계형 DB의 row 처럼 컬럼이 명확히 명시되어 있는 것이 아니라, 하나의 document 안에 들어가는 내용을 아주 유연하게(key,value) 담을 수 있고 계층구조를 가질 수 있다. 예를 들면, 블로그라는 컬렉션에(나중에 자세히 설명함) 블로그1 이라는 document를 생성했고, 이 document에 저자 : A, 내용 : B, 태크 : [음식점, 중국요리, 맛집] 이렇게 키와 밸류 값을 사용하며, 태그 항목은..

MongoDB 2011.10.13

몽고DB 설치

몽고 디비 설치 - 아래 디렉토리는 제 예제이므로 원하는 디렉토리로 설정하면 됩니다. mongodb-linux-x86_64-1.8.3.tgz 다운받아 압축해제 http://www.mongodb.org/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.0.tgz/download -> 버전 확인하고 최신으로 다운 $ tar -xzvf 파일.tgz 몽고디비의 데이터가 쌓일 디렉토리 생성 sudo mkdir -p /data/mongo/user 몽고디비의 로그파일 디렉토리 생성 sudo mkdir -p /원하는 디렉토리/logs 몽고DB 일반 실행 방법 (포트 27031로 사용시) ./mongod --dbpath /data/mongo/user --port 27031 -..

MongoDB 2011.10.13

MongoDB upsert

저장하려는 다큐먼트가 없으면, 바로 저장하고. 해당 다큐먼트가 존재하면, 원하는 값으로 업데이트를 시키는 atomic 연산을 수행한다. (즉, 레이스컨디션 발생없이 수행시킴) - PHP 에서 사용법 update 의 세번째 파라미터로 upsert 를 true 로 설정함. function set_company_img_to_db($img_id, $img_data){ if(!$collection = get_mongo_company_image()){ return false; } $image = new MongoBindata($img_data); // upsert 수행. $collection->update(array("img_id"=>$img_id), array("img_id"=>$img_id, "image"=>$..

MongoDB 2011.10.11

BizContact. 영업인, 비지니스맨을 위한 고객 및 인맥관리 안드로이드 앱

* 안드로이드 앱 다운로드는 -> https://market.android.com/details?id=com.macro.sc 또는 http://t.co/zV5FV9n * Title : 영업인, 비지니스맨을 위한 고객 및 인맥 관리 BizContact * For Who : 고객이나 인맥을 관리해야 하는 영업인, 비지니스맨, 자영업자, 보험설계사, 카딜러, 은행원 등 빠르고 간단한 방법으로 인맥관리를 잘 하고 싶은 모든 사람 * 설명 - 내가 연락이 뜸했던 사람들이 누구인지 한눈에 파악하여 연락함으로써 인간관계를 지속시킨다, - 특정인과의 약속이나 계약일정등을 등록하면, 꼭 연락할 수 있도록 알려줌으로써 상대방과 한 약속을 지킬 수 있도록 한다. - 지도로 현재 나의 위치에서 가까이에 있는 사람들이 누구인지..

Android 2011.02.10
반응형