ν
MongoDBλ λλ μ°κΈ° μμ
μ μννκΈ° μν db.collection.bulkWrite() λ©μλλ μ 곡ν©λλ€.
μ€λͺ
Bulk()λ¨μΌ 컬λ μ μ λν΄ λλμΌλ‘ μνν μ°κΈ° μμ λͺ©λ‘μ ꡬμ±νλ λ° μ¬μ©λλ λλ μμ λΉλμ λλ€λ₯Ό λ§λλλ€. λΉλλ₯Ό μΈμ€ν΄μ€ννλ €λ©΄ λΉλμμ
db.collection.initializeOrderedBulkOp()λλdb.collection.initializeUnorderedBulkOp()λ©μλλ₯Ό μ¬μ©ν©λλ€.
νΈνμ±
μ΄ λͺ λ Ήμ λ€μ νκ²½μμ νΈμ€ν λλ λ°°ν¬μμ μ¬μ©ν μ μμ΅λλ€.
MongoDB Atlas: ν΄λΌμ°λμμμ MongoDB λ°°ν¬λ₯Ό μν μμ κ΄λ¦¬ν μλΉμ€
μ°Έκ³
μ΄ λͺ λ Ήμ λͺ¨λ MongoDB Atlas ν΄λ¬μ€ν°μμ μ§μλ©λλ€. λͺ¨λ λͺ λ Ήμ λν Atlas μ§μμ κ΄ν΄ μμΈν μμλ³΄λ €λ©΄ μ§μλμ§ μλ λͺ λ Ήμ μ°Έμ‘°νμμμ€.
μμκ° μ§μ λ λλ μμ κ³Ό μμκ° μ§μ λμ§ μμ λλ μμ
λΉλλ μμ λͺ©λ‘μ μμκ° μ§μ λκ±°λ λμ§ μμ μνλ‘ κ΅¬μ±ν μ μμ΅λλ€.
μμκ° μ§μ λ μ°μ°
μμκ° μ§μ λ μμ λͺ©λ‘μ μ¬μ©νμ¬ MongoDBλ λͺ©λ‘μ μ°κΈ° μμ μ μμ°¨μ μΌλ‘ μ€νν©λλ€. μ°κΈ° μμ μ€ νλλ₯Ό μ²λ¦¬νλ λμ μ€λ₯κ° λ°μνλλΌλ MongoDBλ λͺ©λ‘μ μλ λλ¨Έμ§ μ°κΈ° μμ μ κ³μ μ²λ¦¬ν©λλ€.
db.collection.initializeOrderedBulkOp()μ μ¬μ©νμ¬ μμκ° μ§μ λ μ°κΈ° λͺ
λ Ή λͺ©λ‘μ λν λΉλλ₯Ό λ§λλλ€.
MongoDBλ ordered μ°μ° λͺ©λ‘μ μ€νν κ²½μ° operation type λ° μ°μμ±μ κΈ°μ€μΌλ‘ μ°μ°μ κ·Έλ£Ήνν©λλ€(μ¦, κ°μ μ νμ μ°μ μ°μ°μ΄ ν¨κ» κ·Έλ£Ήνλ¨). κ·Έ μλ‘ μμκ° μ§μ λ λͺ©λ‘μ μ½μ
μ°μ° 2κ°κ° λ¨Όμ λμ€κ³ κ·Έ λ€μμ μ
λ°μ΄νΈ μ°μ°, λ κ·Έ λ€μμλ λ€λ₯Έ μ½μ
μ°μ°μ΄ μλ κ²½μ°, MongoDBλ μ΄ μ°μ°λ€μ 3κ°μ κ°λ³ κ·Έλ£ΉμΌλ‘ κ·Έλ£Ήνν©λλ€. 첫 λ²μ§Έ κ·Έλ£Ήμλ μ½μ
μ°μ° 2κ°, λ λ²μ§Έ κ·Έλ£Ήμλ μ
λ°μ΄νΈ μ°μ°, μΈ λ²μ§Έ κ·Έλ£Ήμλ λ§μ§λ§ μ½μ
μ°μ°μ΄ ν¬ν¨λ©λλ€. μ΄ λμμ μ΄νμ λ²μ μμ λ³κ²½λ μ μμ΅λλ€.
mongoshμ Bulk() μμ
κ³Ό λλΌμ΄λ²μ μ μ¬ν λ©μλμλ κ·Έλ£Ήμ μμ
μμ λν μ νμ΄ μμ΅λλ€. λλ μμ
μ€νμ μν΄ μμ
μ΄ μ΄λ»κ² κ·Έλ£Ήνλλμ§ νμΈνλ €λ©΄ μ€ν ν Bulk.getOperations()λ₯Ό νΈμΆν©λλ€.
μ€λ 컬λ μ
μμ ordered μμ
λͺ©λ‘μ μ€ννλ κ²μ unordered λͺ©λ‘μ μ€ννλ κ²λ³΄λ€ μΌλ°μ μΌλ‘ λ립λλ€. μ λ ¬λ λͺ©λ‘μμλ κ° μμ
μ΄ μ΄μ μμ
μ΄ μλ£λ λκΉμ§ κΈ°λ€λ €μΌ νκΈ° λλ¬Έμ
λλ€.
μμκ° μ§μ λμ§ μμ μ°μ°
μ λ ¬λμ§ μμ μμ λͺ©λ‘μ μ¬μ©νλ©΄ MongoDBλ λͺ©λ‘μ μ°κΈ° μμ μ λΉκ²°μ μ μμλ‘ μ€νν μ μμ λΏλ§ μλλΌ λ³λ ¬λ‘ μ€νν μλ μμ΅λλ€. μ°κΈ° μμ μ€ νλλ₯Ό μ²λ¦¬νλ λμ μ€λ₯κ° λ°μνλλΌλ MongoDBλ λͺ©λ‘μ μλ λλ¨Έμ§ μ°κΈ° μμ μ κ³μ μ²λ¦¬ν©λλ€.
db.collection.initializeUnorderedBulkOp()λ₯Ό μ¬μ©νμ¬ μ λ ¬λμ§ μμ μ°κΈ° λͺ
λ Ή λͺ©λ‘μ λν λΉλλ₯Ό λ§λλλ€.
MongoDBλ unordered μ°μ° λͺ©λ‘μ μ€νν κ²½μ° μ΄ μ°μ°λ€μ κ·Έλ£Ήνν©λλ€. μμκ° μ§μ λμ§ μμ λλ μ°μ°μ΄ μμΌλ©΄ μ±λ₯ ν₯μμ μν΄ λͺ©λ‘μ μν μ°μ°μ μμλ₯Ό λ³κ²½ν μ μμ΅λλ€. λ°λΌμ μ ν리μΌμ΄μ
μ unordered λλ μ°μ°μ μνν λ μμμ μμ‘΄ν΄μλ μ λ©λλ€.
mongoshμ Bulk() μμ
κ³Ό λλΌμ΄λ²μ μ μ¬ν λ©μλμλ κ·Έλ£Ήμ μμ
μμ λν μ νμ΄ μμ΅λλ€. λλ μμ
μ€νμ μν΄ μμ
μ΄ μ΄λ»κ² κ·Έλ£Ήνλλμ§ νμΈνλ €λ©΄ μ€ν ν Bulk.getOperations()λ₯Ό νΈμΆν©λλ€.
νΈλμμ
Bulk()λ λΆμ° νΈλμμ
λ΄μμ μ¬μ©ν μ μμ΅λλ€.
Bulk.insert() μ°μ°μμλ μ΄ μ»¬λ μ
μ΄ μ΄λ―Έ μ‘΄μ¬ν΄μΌ ν©λλ€.
Bulk.find.upsert() μ°μ°μμ μ°μ° κ²°κ³Ό μ
μνΈκ° λ°μν κ²½μ°μλ μ΄ μ»¬λ μ
μ΄ μ΄λ―Έ μ‘΄μ¬ν΄μΌ ν©λλ€.
νΈλμμ μμ μ€νλλ κ²½μ° μμ μ λν μ°κΈ° κ³ λ €λ₯Ό λͺ μμ μΌλ‘ μ€μ νμ§ λ§μΈμ. νΈλμμ μ μ°κΈ° κ³ λ €λ₯Ό μ¬μ©νλ €λ©΄ νΈλμμ λ° μ°κΈ° κ³ λ €λ₯Ό μ°Έμ‘°νμΈμ.
μ€μ
λλΆλΆμ κ²½μ° λΆμ° νΈλμμ μ λ¨μΌ λ¬Έμ μ°κΈ°μ λΉν΄ λ ν° μ±λ₯ λΉμ©μ΄ λ°μνλ―λ‘ λΆμ° νΈλμμ μ κ°μ©μ±μ΄ ν¨κ³Όμ μΈ μ€ν€λ§ μ€κ³λ₯Ό λ체ν μλ μμ΅λλ€. λλΆλΆμ μλ리μ€μμ λΉμ κ·νλ λ°μ΄ν° λͺ¨λΈ (λ΄μ₯λ λ¬Έμ λ° λ°°μ΄) μ κ³μν΄μ λ°μ΄ν° λ° μ¬μ© μ¬λ‘μ μ΅μ μΌ κ²μ λλ€. μ¦, λλΆλΆμ μλ리μ€μμ λ°μ΄ν°λ₯Ό μ μ νκ² λͺ¨λΈλ§νλ©΄ λΆμ° νΈλμμ μ νμμ±μ΄ μ΅μνλ©λλ€.
μΆκ° νΈλμμ μ¬μ© κ³ λ € μ¬ν(μ: λ°νμ μ ν λ° oplog ν¬κΈ° μ ν)μ νλ‘λμ κ³ λ €μ¬νμ μ°Έμ‘°νμΈμ.
λ°©λ²
Bulk() λΉλμλ λ€μκ³Ό κ°μ λ©μλκ° μμ΅λλ€.
μ΄λ¦ | μ€λͺ
|
|---|---|
μμ λͺ©λ‘μ μ½μ μμ μ μΆκ°ν©λλ€. | |
μ λ°μ΄νΈ λλ μ κ±° μμ μ λν 쿼리 쑰건μ μ§μ ν©λλ€. | |
μ¬λ¬ λ¬Έμ μμ μμ μ μμ λͺ©λ‘μ μΆκ°ν©λλ€. | |
μμ λͺ©λ‘μ λ¨μΌ λ¬Έμ μμ μμ μ μΆκ°ν©λλ€. | |
| |
| |
μμ λͺ©λ‘μ λ¨μΌ λ¬Έμ λ°κΎΈκΈ° μμ μ μΆκ°ν©λλ€. | |
μμ λͺ©λ‘μ λ¨μΌ λ¬Έμ μ λ°μ΄νΈ μμ μ μΆκ°ν©λλ€. | |
μμ
λͺ©λ‘μ | |
μ
λ°μ΄νΈ μμ
μ | |
μμ λͺ©λ‘μ μΌκ΄μ μΌλ‘ μ€νν©λλ€. | |
| |
| |
|