Docs Menu
Docs Home
/
가이드 시작

MongoDB에 데이터 삽입

이 가이드에서는 MongoDB에 데이터를 삽입하는 방법을 설명합니다.

소요 시간: 15분

  • 배포서버 에 대한 연결 string 입니다.MongoDB

  • 클러스터에 로드된 샘플 데이터 세트입니다.

  • 설치된 MongoDB 드라이버.

1
1

다음 클래스에는 문서에 포함될 모든 필드 이름과 유형이 나열되어 있습니다.

CrudInsert.cs
1// class that maps to the fields of a document in the sample_guides.comets collection
2class Comet {
3 public ObjectId Id { get; set; }
4 public string Name { get; set; }
5 public string OfficialName { get; set; }
6 public double OrbitalPeriod { get; set; }
7 public double Radius { get; set; }
8 public double Mass { get; set; }
9}
2

C# 에서는 필드를 클래스 속성에 매핑하며, 이 속성은 규칙에 따라 대문자로 표시됩니다. 단, 대소문자 필드를 사용하여 데이터를 삽입해야 합니다. 운전자 가 필드를 대문자에서 카멜식 대/소문자로 자동 변환하도록 하려면 ConventionPack 을 만들고 CamelCase 에 대한 명명 규칙을 등록합니다.

CrudInsert.cs
1// instruct the driver to camelCase the fields in MongoDB
2var pack = new ConventionPack { new CamelCaseElementNameConvention() };
3ConventionRegistry.Register("elementNameConvention", pack, x => true);
3

다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것입니다. 다음 몇몇 단계에서는 데이터를 삽입하기 위해 추가 작업을 수행합니다.

6번째 줄에서 URI 문자열을 자체 Atlas 연결 문자열로 대체합니다.

CrudInsert.cs
1using MongoDB.Bson;
2using MongoDB.Bson.Serialization.Conventions;
3using MongoDB.Driver;
4
5// Replace the uri string with your MongoDB deployment's connection string.
6var uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
7
8// instruct the driver to camelCase the fields in MongoDB
9var pack = new ConventionPack { new CamelCaseElementNameConvention() };
10ConventionRegistry.Register("elementNameConvention", pack, x => true);
11
12var client = new MongoClient(uri);
13
14// database and colletion code goes here
15// insert code goes here
16// display the results of your operation
17
18// class that maps to the fields of a document in the sample_guides.comets collection
19class Comet {
20 public ObjectId Id { get; set; }
21 public string Name { get; set; }
22 public string OfficialName { get; set; }
23 public double OrbitalPeriod { get; set; }
24 public double Radius { get; set; }
25 public double Mass { get; set; }
26}

다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것입니다. 다음 몇몇 단계에서는 데이터를 삽입하기 위해 추가 작업을 수행합니다.

13줄에서 URI string 을 자체 Atlas 연결 string 로 바꿉니다.

crud-insert.go
1import (
2 "context"
3 "fmt"
4 "log"
5 "os"
6
7 "go.mongodb.org/mongo-driver/bson"
8 "go.mongodb.org/mongo-driver/mongo"
9 "go.mongodb.org/mongo-driver/mongo/options"
10)
11
12func main() {
13 uri := "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"
14
15 client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri))
16 if err != nil {
17 panic(err)
18 }
19 defer func() {
20 if err = client.Disconnect(context.TODO()); err != nil {
21 panic(err)
22 }
23 }()
24
25 // database and colletion code goes here
26 // insert code goes here
27 // display the results of your operation
28}

다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것입니다. 다음 몇몇 단계에서는 데이터를 삽입하기 위해 추가 작업을 수행합니다.

15줄에서 URI string 을 자체 Atlas 연결 string 로 바꿉니다.

CrudInsert.java
1import com.mongodb.client.MongoClient;
2import com.mongodb.client.MongoClients;
3import com.mongodb.client.MongoCollection;
4import com.mongodb.client.MongoDatabase;
5import com.mongodb.client.result.InsertManyResult;
6
7import org.bson.Document;
8import org.bson.types.ObjectId;
9
10import java.util.List;
11import java.util.ArrayList;
12
13public class CrudInsert {
14 public static void main(String[] args) {
15 String uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
16
17 try (MongoClient mongoClient = MongoClients.create(uri)) {
18 // database and collection code goes here
19 // insert code goes here
20 // display the results of your operation
21 }
22 }
23}

다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것입니다. 다음 몇몇 단계에서는 데이터를 삽입하기 위해 추가 작업을 수행합니다.

4번째 줄에서 URI 문자열을 자체 Atlas 연결 문자열로 대체합니다.

crud-insert.js
1const { MongoClient } = require("mongodb");
2// Replace the uri string with your MongoDB deployment's connection string.
3const uri =
4 "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
5const client = new MongoClient(uri);
6async function run() {
7 try {
8 await client.connect();
9 // database and collection code goes here
10 // insert code goes here
11 // display the results of your operation
12 } finally {
13 // Ensures that the client will close when you finish/error
14 await client.close();
15 }
16}
17run().catch(console.dir);

다음은 MongoDB에 접속하기 위해 필요한 최소한의 코드를 간략하게 정리한 것입니다. 다음 몇몇 단계에서는 데이터를 삽입하기 위해 추가 작업을 수행합니다.

4번째 줄에서 URI 문자열을 자체 Atlas 연결 문자열로 대체합니다.

crud_insert.py
1from pymongo import MongoClient
2
3# Replace the uri string with your MongoDB deployment's connection string.
4uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"
5
6client = MongoClient(uri)
7
8# database and collection code goes here
9# insert code goes here
10# display the results of your operation
11
12# Close the connection to MongoDB when you're done.
13client.close()

mongodb+srv

PyMongo를 srv 옵션으로 설치했는지 확인합니다.

python3 -m pip install "pymongo[srv]"
2

작업할 데이터베이스 및 컬렉션으로 전환합니다. 이 경우 sample_guides 데이터베이스 및 comets 컬렉션을 사용하게 됩니다.

CrudInsert.cs
// database and collection code goes here
var db = client.GetDatabase("sample_guides");
var coll = db.GetCollection<Comet>("comets");
crud-insert.go
1// database and colletion code goes here
2db := client.Database("sample_guides")
3coll := db.Collection("comets")
CrudInsert.java
1// database and collection code goes here
2MongoDatabase db = mongoClient.getDatabase("sample_guides");
3MongoCollection<Document> coll = db.getCollection("comets");
crud-insert.js
// database and collection code goes here
const db = client.db("sample_guides");
const coll = db.collection("comets");
crud_insert.py
# database and collection code goes here
db = client.sample_guides
coll = db.comets
3

comets 컬렉션에 새 문서 세 개를 생성하고 삽입합니다. 각 문서는 커밋에 대한 다음과 같은 정보로 구성됩니다.

  • 이름

  • 공식 명칭

  • 궤도 주기(년)

  • 반지름(마일)

  • 킬로그램 단위의 질량

CrudInsert.cs
// insert code goes here
var comets = new [] {
new Comet {
Name = "Halley's Comet",
OfficialName = "1P/Halley",
OrbitalPeriod = 75,
Radius = 3.4175,
Mass = 2.2e14
},
new Comet {
Name = "Wild2",
OfficialName = "81P/Wild",
OrbitalPeriod = 6.41,
Radius = 1.5534,
Mass = 2.3e13
},
new Comet {
Name = "Comet Hyakutake",
OfficialName = "C/1996 B2",
OrbitalPeriod = 17000,
Radius = 0.77671,
Mass = 8.8e12
}
};
coll.InsertMany(comets);
crud-insert.go
1// insert code goes here
2docs := []interface{}{
3 bson.D{{"name", "Halley's Comet"}, {"officialName", "1P/Halley"}, {"orbitalPeriod", 75}, {"radius", 3.4175}, {"mass", 2.2e14}},
4 bson.D{{"name", "Wild2"}, {"officialName", "81P/Wild"}, {"orbitalPeriod", 6.41}, {"radius", 1.5534}, {"mass", 2.3e13}},
5 bson.D{{"name", "Comet Hyakutake"}, {"officialName", "C/1996 B2"}, {"orbitalPeriod", 17000}, {"radius", 0.77671}, {"mass", 8.8e12}},
6}
7
8result, err := coll.InsertMany(context.TODO(), docs)
9if err != nil {
10 panic(err)
11}
CrudInsert.java
1// insert code goes here
2List<Document> documents = new ArrayList<>();
3
4Document doc1 = new Document("name", "Halley's Comet").append("officialName", "1P/Halley").append("orbitalPeriod", 75).append("radius", 3.4175).append("mass", 2.2e14);
5Document doc2 = new Document("name", "Wild2").append("officialName", "81P/Wild").append("orbitalPeriod", 6.41).append("radius", 1.5534).append("mass", 2.3e13);
6Document doc3 = new Document("name", "Comet Hyakutake").append("officialName", "C/1996 B2").append("orbitalPeriod", 17000).append("radius", 0.77671).append("mass", 8.8e12);
7
8documents.add(doc1);
9documents.add(doc2);
10documents.add(doc3);
11
12InsertManyResult result = coll.insertMany(documents);
crud-insert.js
// insert code goes here
const docs = [
{name: "Halley's Comet", officialName: "1P/Halley", orbitalPeriod: 75, radius: 3.4175, mass: 2.2e14},
{name: "Wild2", officialName: "81P/Wild", orbitalPeriod: 6.41, radius: 1.5534, mass: 2.3e13},
{name: "Comet Hyakutake", officialName: "C/1996 B2", orbitalPeriod: 17000, radius: 0.77671, mass: 8.8e12}
];
const result = await coll.insertMany(docs);
crud_insert.py
# insert code goes here
docs = [
{"name": "Halley's Comet", "officialName": "1P/Halley", "orbitalPeriod": 75, "radius": 3.4175, "mass": 2.2e14},
{"name": "Wild2", "officialName": "81P/Wild", "orbitalPeriod": 6.41, "radius": 1.5534, "mass": 2.3e13},
{"name": "Comet Hyakutake", "officialName": "C/1996 B2", "orbitalPeriod": 17000, "radius": 0.77671, "mass": 8.8e12},
]
result = coll.insert_many(docs)

_id 필드를 생략하면 드라이버는 ObjectId _id 필드에 대해 고유한 값을 자동으로 생성합니다.

4

MongoDB의 많은 쓰기 작업은 작업에 대한 정보가 포함된 결과 객체를 반환합니다.

삽입 작업의 경우 C# 드라이버는 삽입되는 문서의 _id을 자동으로 생성합니다. 여기에서 원본 배열의 속성에 액세스하고 인쇄합니다.

CrudInsert.cs
// display the results of your operation
foreach (var comet in comets) {
Console.WriteLine(comet.Id);
}

삽입 작업의 경우 결과 객체에는 드라이버가 성공적으로 삽입한 문서의 _id이 포함됩니다. 여기에서 해당 속성에 액세스하여 인쇄합니다.

crud-insert.go
1// display the results of your operation
2for _, id := range result.InsertedIDs {
3 fmt.Printf("\t%s\n", id)
4}

삽입 작업의 경우 결과 객체에는 드라이버가 성공적으로 삽입한 문서의 _id이 포함됩니다. 여기에서 해당 속성에 액세스하여 인쇄합니다.

CrudInsert.java
1// display the results of your operation
2result.getInsertedIds().values().forEach(doc -> System.out.println(doc.asObjectId().getValue()));

삽입 작업의 경우 결과 객체에는 드라이버가 성공적으로 삽입한 문서의 _id이 포함됩니다. 여기에서 해당 속성에 액세스하여 인쇄합니다.

crud-insert.js
// display the results of your operation
console.log(result.insertedIds);

삽입 작업의 경우 결과 객체에는 드라이버가 성공적으로 삽입한 문서의 _id이 포함됩니다. 여기에서 해당 속성에 액세스하여 인쇄합니다.

crud_insert.py
# display the results of your operation
print(result.inserted_ids)
5

다음은 전체 코드와 샘플 출력입니다.

참고

ObjectId 값은 표시된 값과 다를 수 있습니다.

CrudInsert.cs
1using MongoDB.Bson;
2using MongoDB.Bson.Serialization.Conventions;
3using MongoDB.Driver;
4
5// Replace the uri string with your MongoDB deployment's connection string.
6var uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
7
8// instruct the driver to camelCase the fields in MongoDB
9var pack = new ConventionPack { new CamelCaseElementNameConvention() };
10ConventionRegistry.Register("elementNameConvention", pack, x => true);
11
12var client = new MongoClient(uri);
13
14// database and colletion code goes here
15var db = client.GetDatabase("sample_guides");
16var coll = db.GetCollection<Comet>("comets");
17
18// insert code goes here
19var comets = new [] {
20 new Comet {
21 Name = "Halley's Comet",
22 OfficialName = "1P/Halley",
23 OrbitalPeriod = 75,
24 Radius = 3.4175,
25 Mass = 2.2e14
26 },
27 new Comet {
28 Name = "Wild2",
29 OfficialName = "81P/Wild",
30 OrbitalPeriod = 6.41,
31 Radius = 1.5534,
32 Mass = 2.3e13
33 },
34 new Comet {
35 Name = "Comet Hyakutake",
36 OfficialName = "C/1996 B2",
37 OrbitalPeriod = 17000,
38 Radius = 0.77671,
39 Mass = 8.8e12
40 }
41};
42
43coll.InsertMany(comets);
44
45// display the results of your operation
46foreach (var comet in comets) {
47 Console.WriteLine(comet.Id);
48}
49
50// class that maps to the fields of a document in the sample_guides.comets collection
51class Comet {
52 public ObjectId Id { get; set; }
53 public string Name { get; set; }
54 public string OfficialName { get; set; }
55 public double OrbitalPeriod { get; set; }
56 public double Radius { get; set; }
57 public double Mass { get; set; }
58}
625604fbd301606fd9998b14
625604fbd301606fd9998b15
625604fbd301606fd9998b16
crud-insert.go
1import (
2 "context"
3 "fmt"
4 "log"
5 "os"
6
7 "go.mongodb.org/mongo-driver/bson"
8 "go.mongodb.org/mongo-driver/mongo"
9 "go.mongodb.org/mongo-driver/mongo/options"
10)
11
12func main() {
13 uri := "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"
14
15 client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri))
16 if err != nil {
17 panic(err)
18 }
19 defer func() {
20 if err = client.Disconnect(context.TODO()); err != nil {
21 panic(err)
22 }
23 }()
24
25 // database and colletion code goes here
26 db := client.Database("sample_guides")
27 coll := db.Collection("comets")
28
29 // insert code goes here
30 docs := []interface{}{
31 bson.D{{"name", "Halley's Comet"}, {"officialName", "1P/Halley"}, {"orbitalPeriod", 75}, {"radius", 3.4175}, {"mass", 2.2e14}},
32 bson.D{{"name", "Wild2"}, {"officialName", "81P/Wild"}, {"orbitalPeriod", 6.41}, {"radius", 1.5534}, {"mass", 2.3e13}},
33 bson.D{{"name", "Comet Hyakutake"}, {"officialName", "C/1996 B2"}, {"orbitalPeriod", 17000}, {"radius", 0.77671}, {"mass", 8.8e12}},
34 }
35
36 result, err := coll.InsertMany(context.TODO(), docs)
37 if err != nil {
38 panic(err)
39 }
40
41 // display the results of your operation
42 for _, id := range result.InsertedIDs {
43 fmt.Printf("\t%s\n", id)
44 }
45}
ObjectID("624cf31b350635c487d55215")
ObjectID("624cf31b350635c487d55216")
ObjectID("624cf31b350635c487d55217")
CrudInsert.java
1import com.mongodb.client.MongoClient;
2import com.mongodb.client.MongoClients;
3import com.mongodb.client.MongoCollection;
4import com.mongodb.client.MongoDatabase;
5import com.mongodb.client.result.InsertManyResult;
6
7import org.bson.Document;
8
9import java.util.List;
10import java.util.ArrayList;
11
12public class CrudInsert {
13 public static void main(String[] args) {
14 String uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
15
16 try (MongoClient mongoClient = MongoClients.create(uri)) {
17 // database and collection code goes here
18 MongoDatabase db = mongoClient.getDatabase("sample_guides");
19 MongoCollection<Document> coll = db.getCollection("comets");
20
21 // insert code goes here
22 List<Document> documents = new ArrayList<>();
23
24 Document doc1 = new Document("name", "Halley's Comet").append("officialName", "1P/Halley").append("orbitalPeriod", 75).append("radius", 3.4175).append("mass", 2.2e14);
25 Document doc2 = new Document("name", "Wild2").append("officialName", "81P/Wild").append("orbitalPeriod", 6.41).append("radius", 1.5534).append("mass", 2.3e13);
26 Document doc3 = new Document("name", "Comet Hyakutake").append("officialName", "C/1996 B2").append("orbitalPeriod", 17000).append("radius", 0.77671).append("mass", 8.8e12);
27
28 documents.add(doc1);
29 documents.add(doc2);
30 documents.add(doc3);
31
32 InsertManyResult result = coll.insertMany(documents);
33
34 // display the results of your operation
35 result.getInsertedIds().values().forEach(doc -> System.out.println(doc.asObjectId().getValue()));
36 }
37 }
38}
625716fc5749232edfb4b2d7
625716fc5749232edfb4b2d8
625716fc5749232edfb4b2d9
crud-insert.js
1const { MongoClient } = require("mongodb");
2// Replace the uri string with your MongoDB deployment's connection string.
3const uri =
4"mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
5
6const client = new MongoClient(uri);
7
8async function run() {
9 try {
10 await client.connect();
11 // database and collection code goes here
12 const db = client.db("sample_guides");
13 const coll = db.collection("comets");
14
15 // insert code goes here
16 const docs = [
17 {name: "Halley's Comet", officialName: "1P/Halley", orbitalPeriod: 75, radius: 3.4175, mass: 2.2e14},
18 {name: "Wild2", officialName: "81P/Wild", orbitalPeriod: 6.41, radius: 1.5534, mass: 2.3e13},
19 {name: "Comet Hyakutake", officialName: "C/1996 B2", orbitalPeriod: 17000, radius: 0.77671, mass: 8.8e12}
20 ];
21
22 const result = await coll.insertMany(docs);
23
24 // display the results of your operation
25 console.log(result.insertedIds);
26
27 } finally {
28 // Ensures that the client will close when you finish/error
29 await client.close();
30 }
31}
32run().catch(console.dir);
{
'0': 624d06994e68f44afe8c0da6,
'1': 624d06994e68f44afe8c0da7,
'2': 624d06994e68f44afe8c0da8
}
crud_insert.py
1from pymongo import MongoClient
2
3# Replace the uri string with your MongoDB deployment's connection string.
4uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority"
5
6client = MongoClient(uri)
7
8# database and collection code goes here
9db = client.sample_guides
10coll = db.comets
11
12coll.drop()
13
14# insert code goes here
15docs = [
16 {"name": "Halley's Comet", "officialName": "1P/Halley", "orbitalPeriod": 75, "radius": 3.4175, "mass": 2.2e14},
17 {"name": "Wild2", "officialName": "81P/Wild", "orbitalPeriod": 6.41, "radius": 1.5534, "mass": 2.3e13},
18 {"name": "Comet Hyakutake", "officialName": "C/1996 B2", "orbitalPeriod": 17000, "radius": 0.77671, "mass": 8.8e12},
19 ]
20
21result = coll.insert_many(docs)
22
23# display the results of your operation
24print(result.inserted_ids)
25
26# Close the connection to MongoDB when you're done.
27client.close()
[ObjectId('624d078756f4582197aad408'), ObjectId('624d078756f4582197aad409'), ObjectId('624d078756f4582197aad40a')]

이 가이드를 완료했다면 MongoDB에 데이터를 삽입한 것입니다.

다음 가이드에서는 문서의 필드를 업데이트하는 방법을 알아봅니다.

여기에 제시된 개념에 대한 자세한 내용은 다음 리소스를 참조하세요.

  • 문서 삽입

  • Insert 메서드

마지막으로
MongoDB에서 데이터 업데이트
10분

업데이트할 문서와 MongoDB에서 업데이트하는 방법을 지정합니다.

시작 가이드
2장
CRUD
  • MongoDB 드라이버 추가
  • MongoDB에서 데이터 읽기
  • 쿼리를 사용하여 MongoDB에서 데이터 읽기
  • 연산자 및 복합 쿼리를 사용하여 데이터 읽기
  • MongoDB에 데이터 삽입
  • MongoDB에서 데이터 업데이트
  • MongoDB에서 데이터 삭제