반응형

 

몽고DB에서 데이터 삽입하는 방법에 대해 알아보도록 할 것이다.

데이터를 삽입하는 방식에는 크게 세가지가 있다.

insert 명령, insertOne명령, insertMany명령인데, insert의 경우 단일 도큐먼트 혹은 다수 도큐먼트 모두 삽입이

가능하며, insertOne의 경우 단일 도큐먼트만, insertMany는 다수 도큐먼트만 삽입할 수 있다.

 

1. 삽입(insert)

DB에 데이터를 삽입할 때 사용하는 명령어이다. MySQL의 insert와 매칭되는 명령인데,

MySQL의 경우 각 필드에 데이터를 입력시켜주는 반면 몽고DB에서는 데이터를 도큐먼트 단위로 입력시켜주게 되며,

도큐먼트는 JSON 형태의 데이터로 구성된다.

 

users 컬렉션에 아래와 같이 데이터를 입력시켜볼 수 있다.

db.users.insert({

    name: '홍길동',

    age: 20,

});

위와 같이 입력이 완료되었고, find() 명령을 통해 입력된 데이타를 확인할 수 있다.

db.users.find();

위는 users 컬렉션에 있는 모든 도큐먼트를 조회한 결과이다.

insert() 명령으로 넣은 JSON 데이타가 그대로 들어가있다.

그런데 _id라는 필드는 입력하지 않았는데 자동으로 생겨버렸다.

이 필드는 MySQL에서 Primary key와 같은 역할을 하는 필드라고 보면 된다.

중복을 허용하지 않는 고유의 값이며, 기본적으로 인덱스가 걸려있기 때문에 해당 필드로 조회시 검색 성능은 보장된다. 

 

insert를 이용하여 다수의 데이타를 한번 삽입해보도록 하겠다.

다수의 데이타 삽입시에는 배열을 사용한다.

db.users.insert([
{
    name: '최길동',
    age: 21,
},
{
    name: '박길동',
    age: 22,
},
]);

위와 같이 대괄호 []를 통해 다수의 데이터를 삽입할 수 있다.

정상적으로 다수의 데이타가 입력된 것을 확인할 수 있다.

 

2. 단일 데이터 삽입(insertOne)

insertOne은 단일 도큐먼트를 삽입하는 명령이다.

몽고 3.2버전 이후에 추가된 명령이며, insert를 대체하기 위해 만들어졌다고 한다.

insert()명령과 사용법은 동일하며, 배열 형태로 다수의 데이터를 삽입하는 것은 insertMany명령을 이용해야 한다.

db.users.insertOne({
    name: '홍길동',
    age: 20,
});

아래와 같이 조회하면 정상적으로 데이타가 삽입된 것을 확인할 수 있다.

 

3. 다수 데이터 삽입(insertMany)

insertMany은 다수의 도큐먼트를 한번에 삽입하는 명령이다.

insertOne과 같이 몽고 3.2버전 이후에 추가된 명령이다.

다수 데이터 삽입이므로 배열 형태로 삽입하며 아래와 같이 명령을 사용할 수 있다.

db.users.insertMany([
{
    name: '최길동',
    age: 21,
},
{
    name: '박길동',
    age: 22,
}

]);

정상적으로 삽입이 완료되었다.

 

몽고3.2버전 이후에는 insertOne(), insertMany() 명령을 사용을 권장하므로, insert() 명령 사용은 자제하는 것이 좋을 것으로 보인다.

반응형

+ Recent posts