MongoDB 4

Bson 이란?

MongoDB를 사용하면서 Bson이라는 데이터 타입을 알게 되어 정리 해보고자 한다. BSON(Binary Json) Binary Json의 약어로 Json 문서를 바이너리로 인코딩한 포맷이다. Json이 있는데 Bson이 등장하게 된 이유로는 Json은 텍스트 기반으로 구문 분석이 매우 느리고, 공간 효율성과 거리가 먼 문제점이 있어서 Bson이 탄생 되게 되었다고 한다. Json 구조의 좋은점은 그대로 가져가면서 기계가 빠르게 읽을 수 있는 binary 형태로 변경하여 저장을 한 것이다. 또한 Json에서 지원되지 않는 Date 및 binary와 같은 데이터 유형에 대한 지원을 한다. Bson의 특징 문서 자체의 여백을 줄여 효율적으로 데이터 저장 공간을 절약하는 경량 형태이다. 따라서 네트워크를 ..

MongoDB 2022.04.21

MongoDB 정리

NoSQL이란? 공식 홈페이지에 보면 NoSQL은 "non SQL" 또는 "Not Only SQL"의 약자로 많이 생각하며 대부분의 사람들은 NoSQL 데이터베이스가 관계형 데이터베이스 이외의 형식으로 데이터를 저장하는 데이터베이스라는 데 동의한다고 한다. 우리가 흔히 쓰는 RDBMS으로는 MySQL, Oracle, MS-SQL 등이 있고 NoSQL로는 MongoDB, Redis 등이 있다고 한다. RDBMS vs NoSQL RDBMS NoSQL 적합한 사용사례 데이터 정합성이 보장되어야 하는 은행 시스템 낮은 지연 시간, 가용성이 중요한 SNS 시스템 데이터 모델 정규화와 참조 무결성이 보장된 스키마 스키마가 없는 자유로운 데이터 모델 트랜잭션 강력한 ACID 지원 완화된 ACID(BASE) 확장 하드..

MongoDB 2022.02.15

MongoDB로 Join하기

MongoDB로 Join을 해보자 먼저, MongoDB의 경우 NoSQL로 Join을 지원하지 않는다. 그렇지만 MongoDB 3.2부터는 비슷한 기능인 $lookup 기능을 지원하고 있다. db.getCollection('기준_컬렉션').aggregate([ { $lookup: { from: "조인할 컬렉션", localField: "기준 컬렉션 필드", foreignField: "조인할 컬렉션의 필드", as: "조인 된 데이터가 생성될 신규 필드명" } } ,{ $out : "신규로 생성 될 컬렉션명" } ]) 위와 같이 쿼리를 입력하여 실행하면 Embedded document 형태로 생성 된다. 실행 [person] /* 1 */ { "_id" : ObjectId("61f25a65b8edc7891..

MongoDB 2022.01.27

MongoDB 자주 쓰는 쿼리

Group by db.getCollection('컬렉션').aggregate([ {$group: { _id:"$필드명", num_products:{$sum:1} } } ]) # 특정 조건 group핑 db.getCollection('컬렉션').aggregate([ {$match: {'필드명': '조건'}}, {$group: { _id:"$필드명", num_products:{$sum:1} } } ]) 필드 삭제 db.getCollection('컬렉션').update( {'필드명': { '$exists': true }}, {'$unset': { '필드명': true }}, false, true ) 카운트 조회 db.getCollection('컬렉션').find().count() 데이터 조회 # 단순 조회 d..

MongoDB 2022.01.26