Docs Menu
Docs Home
/
가이드 시작

MongoDB에서 데이터 업데이트

이 가이드에서는 문서의 필드를 업데이트하는 방법을 설명합니다.

소요 시간: 10분

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

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

  • 설치된 MongoDB 드라이버.

1
1

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

CrudUpdate.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 에 대한 명명 규칙을 등록합니다.

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

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

CrudUpdate.cs
1using MongoDB.Bson;
2using MongoDB.Driver;
3
4// Replace the uri string with your MongoDB deployment's connection string.
5var uri = "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
6
7// instruct the driver to camelCase the fields in MongoDB
8var pack = new ConventionPack { new CamelCaseElementNameConvention() };
9ConventionRegistry.Register("elementNameConvention", pack, x => true);
10
11var client = new MongoClient(uri);
12
13// database and collection code goes here
14// update code goes here
15// amount updated code goes here
16
17// class that maps to the fields of a document in the sample_guides.comets collection
18class Comet
19{
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-update.go
1package main
2
3import (
4 "context"
5 "log"
6 "os"
7
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
20 client, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri))
21 if err != nil {
22 panic(err)
23 }
24 defer func() {
25 if err = client.Disconnect(context.TODO()); err != nil {
26 panic(err)
27 }
28 }()
29
30 // database and colletion code goes here
31 // update code goes here
32 // amount update code goes here
33}

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

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

CrudUpdate.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.UpdateResult;
6import com.mongodb.client.model.Filters;
7import com.mongodb.client.model.Updates;
8
9import org.bson.Document;
10import org.bson.conversions.Bson;
11
12public class CrudUpdate {
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 // update code goes here
19 // amount updated code goes here
20 }
21 }
22}

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

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

crud-update.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 // update code goes here
13 // amount deleted code goes here
14 } finally {
15 // Ensures that the client will close when you finish/error
16 await client.close();
17 }
18}
19run().catch(console.dir);

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

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

crud_update.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# update code goes here
10# amount updated code goes here
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 컬렉션을 사용하게 됩니다.

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

이전 가이드에서는 comets 컬렉션에 문서를 삽입했습니다. 이제 해당 문서를 업데이트해야 합니다. 영국식인 radius을 제외한 모든 필드는 미터법 단위입니다.

다음 예시에서는 업데이트 문서를 사용해 모든 문서의 radius 필드를 미터법에서 영국식 단위계로 변환해 봅니다.

변환

1마일 = 1.60934킬로미터

MongoDB C# 드라이버 에는 빌더 가 포함되어 있습니다. 쿼리 및 기타 작업을 생성하는 프로세스 를 간소화합니다. 여기서는 Filter.EmptyUpdate.Mul 빌더 를 사용하여 쿼리 문서 를 구성하고 문서를 업데이트 문서.

CrudUpdate.cs
// update code goes here
var filter = Builders<Comet>.Filter.Empty;
var update = Builders<Comet>.Update.Mul("radius", 1.60934);
var result = coll.UpdateMany(filter, update);
crud-update.go
1// database and colletion code goes here
2db := client.Database("sample_guides")
3coll := db.Collection("comets")
4
5// update code goes here
6filter := bson.D{{}}
7update := bson.D{{"$mul", bson.D{{"radius", 1.60934}}}}
8
9result, err := coll.UpdateMany(context.TODO(), filter, update)
10if err != nil {
11 panic(err)
12}

MongoDB Java 드라이버 에는 쿼리(및 기타 작업) 생성 프로세스 를 간소화하는 빌더 가 포함되어 있습니다. 여기서는 Filters.emptyUpdates.mul 빌더 를 사용하여 쿼리 문서 를 구성합니다.

CrudUpdate.java
1// update code goes here
2Bson filter = Filters.empty();
3Bson update = Updates.mul("radius", 1.60934);
4UpdateResult result = coll.updateMany(filter, update);
crud-update.js
// update code goes here
const filter = { };
const updateDoc = {
$mul: {
radius: 1.60934
}
};
const result = await coll.updateMany(filter, updateDoc);
crud_update.py
# update code goes here
doc = {
'$mul': {'radius': 1.60934}
}
result = coll.update_many({}, doc)
4

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

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

CrudUpdate.cs
// display the results of your operation
Console.WriteLine($"Number of documents updated: {result.ModifiedCount}");
crud-update.go
1// display the results of your operation
2fmt.Printf("Number of documents updated: %d", result.ModifiedCount)
CrudUpdate.java
1// display the results of your operation
2System.out.println("Number of documents updated: " + result.getModifiedCount());
crud-update.js
// display the results of your operation
console.log("Number of documents updated: " + result.modifiedCount);
crud_update.py
# display the results of your operation
print("Number of documents updated: ", result.modified_count)
5

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

CrudUpdate.cs
1using MongoDB.Bson;
2using MongoDB.Driver;
3using MongoDB.Bson.Serialization.Conventions;
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 collection code goes here
15var db = client.GetDatabase("sample_guides");
16var coll = db.GetCollection<Comet>("comets");
17
18// update code goes here
19var filter = Builders<Comet>.Filter.Empty;
20var update = Builders<Comet>.Update.Mul("radius", 1.60934);
21var result = coll.UpdateMany(filter, update);
22
23// display the results of your operation
24Console.WriteLine($"Number of documents updated: {result.ModifiedCount}");
25
26// class that maps to the fields of a document in the sample_guides.comets collection
27class Comet
28{
29 public ObjectId Id { get; set; }
30 public string Name { get; set; }
31 public string OfficialName { get; set; }
32 public double OrbitalPeriod { get; set; }
33 public double Radius { get; set; }
34 public double Mass { get; set; }
35}
Number of documents updated: 3
crud-update.go
1package main
2
3import (
4 "context"
5 "fmt"
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
20 defer func() {
21 if err = client.Disconnect(context.TODO()); err != nil {
22 panic(err)
23 }
24 }()
25
26 // database and colletion code goes here
27 db := client.Database("sample_guides")
28 coll := db.Collection("comets")
29
30 // update code goes here
31 filter := bson.D{{}}
32 update := bson.D{{"$mul", bson.D{{"radius", 1.60934}}}}
33
34 result, err := coll.UpdateMany(context.TODO(), filter, update)
35 if err != nil {
36 panic(err)
37 }
38
39 // display the results of your operation
40 fmt.Printf("Number of documents updated: %d", result.ModifiedCount)
41}
Number of documents updated: 3
CrudUpdate.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.UpdateResult;
6import com.mongodb.client.model.Filters;
7import com.mongodb.client.model.Updates;
8
9import org.bson.Document;
10import org.bson.conversions.Bson;
11
12public class CrudUpdate {
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 // update code goes here
22 Bson filter = Filters.empty();
23 Bson update = Updates.mul("radius", 1.60934);
24 UpdateResult result = coll.updateMany(filter, update);
25
26 // display the results of your operation
27 System.out.println("Number of documents updated: " + result.getModifiedCount());
28 }
29 }
30}
Number of documents updated: 3
crud-update.js
1const { MongoClient } = require("mongodb");
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri =
5 "mongodb+srv://<user>:<password>@<cluster-url>?retryWrites=true&writeConcern=majority";
6
7const client = new MongoClient(uri);
8
9async function run() {
10 try {
11 await client.connect();
12 // database and collection code goes here
13 const db = client.db("sample_guides");
14 const coll = db.collection("comets");
15
16 // update code goes here
17 const filter = {};
18 const updateDoc = {
19 $mul: {
20 radius: 1.60934,
21 },
22 };
23
24 const result = await coll.updateMany(filter, updateDoc);
25
26 // display the results of your operation
27 console.log("Number of documents updated: " + result.modifiedCount);
28 } finally {
29 // Ensures that the client will close when you finish/error
30 await client.close();
31 }
32}
33run().catch(console.dir);
Number of documents updated: 3
crud_update.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
12# update code goes here
13doc = {"$mul": {"radius": 1.60934}}
14result = coll.update_many({}, doc)
15
16# display the results of your operation
17print("Number of documents updated: ", result.modified_count)
18
19# Close the connection to MongoDB when you're done.
20client.close()
Number of documents updated: 3

이 가이드의 절차를 성공적으로 완료했다면 MongoDB에서 데이터가 업데이트됐을 것입니다.

다음 가이드에서는 MongoDB에서 문서를 삭제하는 방법을 알아봅니다.

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

마지막으로
MongoDB에서 데이터 삭제
10분

MongoDB에서 삭제할 문서를 지정합니다.

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