수업에서 몽고DB에 대해 간단히 다뤘다.
나는 교육 전에 nodeJS를 활용하여 풀스택으로 쇼핑몰 웹사이트를 구현한 적이 있는데 그때 몽고db를 사용했었다.
그런데 몇개월의 공백으로인해 기억이...ㅋㅋㅋ
복기를 하고자 간단하게 문법 정리를 해보겠다.
show dbs // 모든 데이터베이스 조회
use local // local 이라는 데이터베이스 사용
db // 현재 db 확인
use test // test라는 데이터베이스 사용
db.createCollection("user", {}) //새로운 컬렉션 만들기
db.getCollectionNames() //현재 사용 중인 db의 모든 컬렉션
db.user.drop() //컬렉션 삭제
//컬렉션의 CRUD 메서드
//find
// insertOne, insertMany, findOne, find, updateOne, updateMany, deleteOne, deleteMany
//문서 생성 메서드 사용하기
//create 메서드로 생성하지 않아도 몽고 db는 스키마가 없기 때문에 이름.insertOne 형태 명령시 컬렉션 자동 생성
db.test.insertMany([{name : 'jenny', age : 22},{name : 'lisa', age:20}])
use test // test 데이터베이스 사용
db.test.find({}) // test 컬렉션 내 모든 document 조회
db.member.find({}).count() // member 컬렉션 내 모든 document 개수 조회
db.createUser({
user: "winner",
pwd: "1234",
roles: ["readWrite", "dbAdmin"]
}) // user 생성
db.memo.find({'name':'apple'}) // memo 컬렉션에서 name이 apple인 도큐먼트 검색
db.getCollection("memo").find({'name':"apple"}) // 위와 같다
// javascript 문법 사용 가능!
for(i=0; i<10;i++){
db.member.insert({'test': i})
}
cursor = db.member.find();
while (cursor.hasNext()) {
printjson(cursor.next());
}
//find(조건, 컬럼선택) - find() 메소드의 두 번째 파라미터로 들어가는 것이 projection
//name 값이 hong 이고(, = and 조건) pw 가 2222 인것, name과 pw 출력
db.member.find({name:'hong', pw:'2222'}, {name:1, pw:1})
// (and 조건) document find()-논리/비교 연산자(복합적으로 사용 가능)
db.member.find({$and : [{name:'hong'}, {pw:'2222'}]}, {name:1, pw:1})
db.member.find({$or: [{name:'hong'},{pw:'2222'}]})
//3초과 8미만
db.member.find({$and : [{test: {$gt:3}}, {test:{$lt: 8} }] })
//document find()-조건검색($regex- option(i: 대소문자무시))
db.member.find({name:{ $regex : /^a/}}) // apple 3건 a로 시작하는것
//1건만 변경 - 젤 처음 하나만 변경되는건지 확인필요
db.member.updateOne({tel : '011'}, {$set : {tel : '000'}})
// 모두 변경
db.member.updateMany({tel:'011'}, {$set: {tel: '000'}})
db.member.deleteOne({'test': 6}) // test가 6인 도큐먼트 한개 삭제
db.member.deleteMany({'name':'hong'}) // name이 hong인 도큐먼트 모두 삭제
본 포스팅은 멀티캠퍼스의 멀티잇 백엔드 개발(Java)의 교육을 수강하고 작성되었습니다.