MongoDB는 MySQL의 DB와 테이블, 레코드에 대응되는 DB와 컬렉션, 문서 개념을 가지고 있음
모든 DB 목록 조회
show dbs
DB 선택
use
//use admin
DB 생성
DB 생성은 따로 없음. 임의의 DB이름을 골라서 사용하면 됨
use mydb
데이터가 생성되기 전까지는 show dbs 명령을 실행해도 목록에 조회되지 않음
현재 DB에 속한 컬렉션 목록을 조회
show collections
특정 컬렉션(테이블)에 레코드 생성
컬렉션의 이름은 testCollection으로 사용
db.testCollection.insert({a: 1})
db.testCollection.insert({a: 3})
컬렉션의 문서 조회
db.testCollection.find()
커서를 이용한 조회
여기서부터는 자바스크립의 문법과 동일한 것을 확인할 수 있음
var c = db.testCollection.find()
c.next()
c.next()
변수를 이용한 문서 추가
j = { name : "mongo" }
k = { x : 3 }
db.testData.insert(j)
db.testData.insert(k)
커서를 이용한 반복 조회
var c = db.testData.find()
while (c.hasNext()) printjson(c.next())
커서와 문서 번호를 이용한 조회
printjson(c[1])
조건을 이용한 조회
db.testData.find({x: 3})
단건 조회
db.testData.findOne()
조회 갯수 제한
db.testData.insert({foo: 3})
db.testData.insert({foo: 4})
db.testData.insert({foo: 10})
db.testData.insert({foo: 9})
db.testData.insert({foo: 7})
db.testData.insert({foo: 4})
db.testData.insert({foo: 2})
db.testData.find().limit(5)
for loop를 이용한 반복 추가
for (var i = 1; i <= 25; i++) db.testData.insert({num: i})
콘솔 상의 페이징
콘솔에서는 문서를 한 번에 20개까지만 출력하고 중간에 멈추므로 it 명령을 입력하여 추가로 문서를 조회해야 함
for (var i = 1;i <= 25; i++) db.testData.insert({num: i})
db.testData.find()
it
자바스크립트 함수를 이용하여 쿼리 로직을 작성
function insertData(dbName, colName, num) {
var col = db.getSiblingDB(dbName).getColleciton(colName);
for (i = 0; i < num; i++) {
col.insert({x: i})
}
print(col.count());
}
insertData("test", "testData", 40)
문서의 속성의 조건을 이용한 조회
db.player.insert({ name: "sue", age: 26, status: "A", groups: [ "news", "sports" ] })
db.player.insert({ name: "john", age: 17, status: "B", groups: [ "news" ] })
db.player.insert({ name: "may", age: 26, status: "A", groups: [ "sports" ] })
db.player.find({age: { $gt: 18 }}).sort({age: 1})