본문 바로가기
공부기록/여러가지

[MongoDB] 중복 문서 제외하고 bulkWrite하기 (createIndex 사용)

by 책읽는 개발자 ami 2023. 7. 14.
728x90
반응형

MongoDB에서 고유 인덱스 생성하는 방법

중복되는 값은 건너 뛰고 삽입하기 위해서는 자동으로 생성되는 _id 필드 외 키값을 정해주어야 한다.
이럴 때 사용하는 문법 중에는 createIndex가 있다. 
db.collection_name.createIndex({ name: 1 }, { unique: true })
위 쿼리는 collection_name이라는 컬렉션에서 name 필드에 고유 인덱스를 생성한다.

두 개의 필드 조합으로 고유 인덱스를 생성하려면 아래와 같이 사용하면 된다.
db.collection_name.createIndex({ field1: 1, field2: 1 }, { unique: true })
 

중복된 문서를 제외하고 삽입하는 방법

MongoDB에 여러 개의 문서를 한 번에 삽입하는 방법은 아래와 같은데, 위와 같이 index를 설정하고, { ordered : false } 라는 옵션을 사용하면 된다.
db.collection_name.bulkWrite([
  { insertOne: { document: { name: "Alice", age: 25 } } },
  { insertOne: { document: { name: "Bob", age: 30 } } },
  { insertOne: { document: { name: "Charlie", age: 35 } } },
  { insertOne: { document: { name: "Alice", age: 40 } } }
], { ordered: false })
 

728x90
반응형