목록백엔드/mongoDB (4)
윤개발

이제 데이터베이스에 있는 데이터를 삭제해보자. 도큐먼트 삭제 삭제는 deleteOne과 deleteMany를 제공한다. 두 메서드 모두 첫 번째 매개변수로 제거할 기준을 지정한다. 예를 들어 "_id" 값이 4인 도큐먼트는 아래와 같이 삭제할 수 있다. >db.movies.deleteOne({"_id":4}) { "acknowledged" : true, "deleteCount" : 1} "_id" 값이 컬렉션에서 고유하기 때문에 하나만 삭제할 수 있었지만 여러 도큐먼트와 일치하는 필터도 지정할 수 있다. 이 때 deleteOne은 필터와 일치하는 첫 번째 도큐먼트를 삭제한다. 어떤 도큐먼트가 삭제되는 지는 삽입된 순서, 인덱스 등 몇가지 요인에 따라 달라진다. 필터와 일치하는 모든 도큐먼트를 삭제하려면 ..

이번에는 몽고DB의 기본적인 데이터 입력을 알아보자. 도큐먼트 삽입 삽입은 몽고DB에 데이터를 추가하는 기본 방법이다. 도큐먼트를 삽입하려면 컬렉션의 insertOne 메서드를 사용한다. > db.movies.insertOne({"title" : "Movie 1"}) 그러면 도큐먼트에 "_id" 키가 추가되고 몽고DB에 저장된다. { "acknowledged" : true, "insertedId" : ObjectId("615da8db82227ce1f4f7d899") } 또한 여러 도큐먼트를 삽입하려면 insertMany를 사용하면 된다. 각 도큐먼트에 대해 데이터베이스에 왕복하지 않고 삽입하므로 훨씬 더 효율적이다. > db.movies.insertMany([{"title":"Movie 2"},{"tit..

몽고DB는 매우 강력하면서도 진입장벽이 낮다. 몽고DB의 기본 개념에 대해 알아보자. 도큐먼트 몽고DB의 핵심은 정렬된 키와 연결된 값의 집합으로 이뤄진 도큐먼트다. 도큐먼트 표현 방식은 프로그래밍 언어마다 다르지만 자바스크립트 객체로 표현하겠다. {"name" : "Hello world!"} 이 간단한 도큐먼트는 name 키 값과 벨류를 가진다. 대부분의 도큐먼트는 이보다 복잡한 다중 키/값 쌍을 가진다. 또한 몽고DB는 데이터형과 대소문자를 구별하고 중복된 키를 넣을 수 없다. 아래 도큐먼트는 올바른 도큐먼트가 아니다. {"name" : "123", "name" : "456"} 컬렉션 컬렉션은 도큐먼트의 모음이다. 몽고DB의 도큐먼트가 관계형 데이터베이스의 행에 대응된다면 컬렉션은 테이블에 대응된다고..

몽고DB는 강력하고 유연하며 확정성 높은 데이터베이스다. 몽고DB의 특징에 대해 알아보자. 1. 손쉬운 사용 몽고DB는 관계형 데이터베이스가 아니라 도큐먼트 지향 데이터베이스다. 관계형 모델을 사용하지 않는 주된 이유는 분산 확장(Scale-out)을 쉽게하기 위함이지만 다른 이점도 있다. 도큐먼트 지향 데이터베이스에서는 행 개념 대신에 보다 유연한 모델인 document를 사용한다. 내장 도큐먼트와 배열을 허용함으로써 document 지향 모델은 복잡한 계층관계를 하나의 레코드로 표현할 수 있다. 이 방식은 최신 객체 지향 언어를 사용하는 개발자의 관점에 매우 적합하다. 또한 몽고DB에서는 도큐먼트의 키와 값을 미리 정의하지 않는다. 따라서 고정된 스키마가 없다. 고정된 스키마가 없으므로 필요할 때마다..