Node.js & MongoDB

몽고DB Node.js 드라이버에 사용된 객체 이해

Db 객체 이해

몽고DB 드라이버의 Db 객체는 데이터베이스에 대한 접근이 가능하게 한다. 데이터베이스의 역할을 해 접속, 사용자 추가, 컬렉션 접근 등과 같은 것들을 할 수 있게 한다.

Admin 객체 이해

몽고DB 데이터베이스에 어떤 관리 함수를 수행하기 위해 Admin 객체를 사용한다. Admin 객체는 특별히 admin 데이터베이스에 대한 커넥션을 나타내며, Db 객체에 포함되지 않는 기능을 제공한다.

Db 객체 인스턴스의 admin() 메소드를 사용하거나 생성자 내부에 Db 객체를 전달해 Admin 객체를 얻는다. 다음 두 예제 모두 제대로 동작한다.

var adminDb = db.admin()
var adminDb = new Admin(db)

Admin 객체의 메소드를 이용해서 몽고DB 서버를 핑할 수 있게 하고, admin 데이터베이스로부터 사용자를 추가, 제거할 수 있게 하며, 데이터베이스를 나열할 수 있게 한다.

Collection 객체 이해

Collection 객체는 몽고DB 데이터베이스 안의 컬렉션을 나타낸다. 컬렉션 내 항목에 접근, 문서 추가, 문서 질의, 그 밖에 많은 작업을 하기 위해 Collection 객체를 사용한다.

Db 객체 인스턴스의 collection() 메소드를 사용하거나 생성자에 Db 객체와 컬렉션 이름을 전달해 Collection 객체를 얻을 수 있다. 몽고DB 서버에 컬렉션이 아직 생성되지 않았다면, Db 객체의 createCollection() 메소드를 이용해서 생성할 수 있다. 다음 예제는 모두 잘 동작한다.

var collection = db.collection()
var collection = new Collection(db, "myCollection")
db.createCollection("newCollection", function(err,collection){}

Collection 객체의 메소드를 이용해서 컬렉션에서 문서를 추가, 수정할 수 있고, 문서를 찾을 수 있으며, 컬렉션을 삭제할 수 있다.

Cursor 객체 이해

몽고DB Node.js 드라이버를 이용해서 몽고DB에 특정 연산을 수행할 때, Cursor 객체가 결과로 반환된다. Cursor 객체는 데이터베이스의 객체의 집합을 접근하는 데 반복될 수 있는 포인터로 동작한다. 예를 들면, find()를 사용할 때 콜백 함수에서 실제 문서는 반환되지 않는다. 대신, Cursor 객체가 반환된다. 그런 다음 결과에서 항목을 읽기 위해 Cursor 객체를 사용할 수 있다.

Cursor 객체의 메소드를 이용해서 컬렉션의 문서를 추가 및 수정, 문서 검색, 그리고 컬렉션 삭제를 할 수 있다.