본문 바로가기

전체 글26

MongoDB - (5) - 인덱싱 인덱스를 사용하면 빠른 속도로 쿼리할 수 있다. 인덱스를 사용하지 않는 쿼리를 Collection scan이라 하며, 서버가 컬렉션 전체를 뒤져 결과를 가져오는 것을 의미한다. 몽고 DB가 쿼리에 효율적으로 응답하게 하려면 애플리케이션의 모든 쿼리 패턴에 인덱스를 사용하는 것이 좋다. 인덱스는 조회 영역에 한하여 놀라운 차이를 가져오지만, 인덱싱된 필드를 변경하는 CRUD 중 CUD 작업은 모든 인덱스를 갱신하기 때문에 오래걸린다. 몽고 DB 인덱스는 기존 RDBMS와 거의 동일하게 작동한다. 예제를 살펴보자. 아래와 같이 쿼리를 진행한다고 하자, db.users.find().sort({"age" : 1, "username" : 1}) 위 쿼리는 먼저 age로 정렬한 뒤, username으로 정리하는데 .. 2023. 4. 21.
MongoDB - (4) - 쿼리 AND 조건 db.user.find({"username" : "joe", "age" : 27}) 반환받을 Key 지정 db.users.find({}, {"username" : 1, "email" : 1}) 아래와 같은 결과를 리턴한다. { "_id" : ObjectId("오브젝트아이디), "username" : "joe", "email" : "joe@example.com" } _id의 경우 설정하지 않더라도 반환된다. db.users.find({"username" : 1, "_id" : 0}) 위와 같이 쿼리를 작성하면 _id는 나오지 않는다. 제약사항 mongoDB에서는 c언어와 동일하게 0이 아닌 다른 수는 모두 TRUE로 처리한다. db.users.find({}, {"fatal_weakness" :.. 2023. 4. 20.
MongoDB - (3) - CRUD 실습 디비 확인 show dbs 컬렉션 확인 show collections 데이터 생성 db.movies.insertOne({"title" : "Stand by Me"}) 데이터 확인 db.moives.find() 컬렉션 삭제 db.movies.drop() 다중 데이터 생성 db.movies.insertMany([{"title" : "Ghostbuster"}, {"title" : "E.T."}, {"title" : "Blade Runner"}]); 조회 결과 여러 도큐먼트를 단일 컬렉션에 삽입하는데 매우 유용 얼마까지 데이터를 입력할 수 있는가? - 책 필자는 48MB 라고 언급 하지만 현재 실습환경 MongoDB 6.X 버전은 아래와 같음 MongoDB 6.X 버전의 임계 값 현재는 해당링크 에 100,00.. 2023. 4. 19.
MongoDB - (2) - CRUD와 데이터타입 //.mongorc.js var comliment = ["attractive, "intelligent", "like Batman"]; var index = Math.floor(Math.random()*3); print("Hello, you're looking particularly " +compliment[index]+ " today!"); var no = function() { print("Not on my watch."); }; //데이터베이스 삭제 방지 db.dropDatabase = DB.prototype.dropDatabase = no; //컬렉션 삭제 방지 DBCollection.prototype.drop = no; //인덱스 삭제 방지 DBCollection.prototype.dropInde.. 2023. 4. 18.