프로그램/nosql

Mongodb First Example (CRUD) ---- my study code 001

mulderu 2014. 3. 18. 11:45


Mongo DB에 관심을 많이 가지고 있으나.. 게으름으로 이제야 조금씩 맛을 보고 있습니다.

아래는 왕초보!!! 입장에서 변수사용및 insert/update/delete/search 에 관한 짧은 예제 입니다.

~$ mongo

MongoDB shell version: 2.2.3

connecting to: test

> a=5;                // 아시는 것과 같이 javascript를 사용하듯 변수를 사용 할 수 있습니다.

5

> b=5;

5

> var k = { id: 'mulder' }; // test

> print(k.id);    // 변수의 reference도 javascript object사용과 같다.

mulder

> for(i=0; i<a; i++) { print ('hello'); };     // 가장 저급한 loop

hello

hello

hello

hello

hello

> for(i=0; i<a; i++) { print ('hello:'+ i); }; // 이렇게 인덱스를 표시함.

hello:0

hello:1

hello:2

hello:3

hello:4

> var a={name:'mulder', age:18};   // 이제 변수를 조금 복잡??? 하게 생성

> var b={name:'scully', age:15};

> test.save(a);

Tue Mar 18 11:29:24 ReferenceError: test is not defined (shell):1

> db.test.save(a);    // 저장하기

> db.test.find();   // 모두 찾기

{ "_id" : ObjectId("512c23e19b5cdd1a61b9a4a5"), "a" : 1, "b" : 2 } 

{ "_id" : ObjectId("5327af9845fb223e46f90dbe"), "name" : "mulder", "age" : 18 }

> db.test.find({name:'mulder'});   // 검색조건을 통한 검색

{ "_id" : ObjectId("5327af9845fb223e46f90dbe"), "name" : "mulder", "age" : 18 }

> db.test.update({name:'mulder'},{age:20});  // 이렇게 갱신하면 기존 자료가 모두 없어지고 age:20만 존재함

> db.test.find({name:'mulder'});

> db.test.find();

{ "_id" : ObjectId("512c23e19b5cdd1a61b9a4a5"), "a" : 1, "b" : 2 } 

{ "_id" : ObjectId("5327af9845fb223e46f90dbe"), "age" : 20 }

> db.test.remove({age: 20});  // 검색조건을 이용한 삭제.

> db.test.find();

{ "_id" : ObjectId("512c23e19b5cdd1a61b9a4a5"), "a" : 1, "b" : 2 } 

> db.test.save(a);

> db.test.find();

{ "_id" : ObjectId("512c23e19b5cdd1a61b9a4a5"), "a" : 1, "b" : 2 } 

{ "_id" : ObjectId("5327af9845fb223e46f90dbe"), "name" : "mulder", "age" : 18 }

> db.test.update({name:'mulder'},{'$set':{age:20}});  // 이렇게 갱신하면 기존거와 머지하므로 기존자료도 유지되고 새로운 필드만 갱신된다.

> db.test.find();

{ "_id" : ObjectId("512c23e19b5cdd1a61b9a4a5"), "a" : 1, "b" : 2 } 

{ "_id" : ObjectId("5327af9845fb223e46f90dbe"), "name" : "mulder", "age" : 20 }