문서 업데이트
다음 방법을 사용하여 MongoDB에서 문서를 업데이트할 수 있습니다:
프로그래밍 언어의 드라이버입니다.
MongoDB Atlas UI. 자세한 내용은 MongoDB Atlas로 문서 업데이트를 참조하세요.
➤ 오른쪽 상단의 언어 선택 드롭다운 메뉴를 사용하여 다음 예시의 언어를 설정합니다.
이 페이지에서는 다음 mongosh
메서드를 사용합니다.
이 페이지의 예제에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지에서는 MongoDB Compass를 사용하여 문서를 업데이트합니다.
이 페이지의 예제에서는 inventory
collection을 사용합니다. inventory
collection을 다음 문서로 채웁니다.
이 페이지에서는 다음 MongoDB C# 드라이버 메서드를 사용합니다:
이 페이지의 예제에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지에서는 다음과 같은 MongoDB Go 드라이버 함수를 사용합니다.
이 페이지의 예제에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지에서는 다음 Java Reactive Streams 드라이버 를 사용합니다. 메서드:
com.mongodb.reactivestreams.client.MongoCollection.updateOne
com.mongodb.reactivestreams.client.MongoCollection.updateMany
com.mongodb.reactivestreams.client.MongoCollection.replaceOne
이 페이지의 예제에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지에서는 다음 Java Synchronous 드라이버 를 사용합니다. 메서드:
이 페이지의 예제에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지에서는 다음 MongoDB Node.js 드라이버 를 사용합니다. 메서드:
이 페이지의 예제에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지에서는 다음 MongoDB 펄(Perl) 드라이버 를 사용합니다. 메서드:
이 페이지의 예제에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지에서는 다음과 같은 MongoDB PHP 라이브러리 메서드를 사용합니다:
이 페이지의 예제에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지는 다음 PyMongo 를 사용합니다. Python 드라이버 메서드:
이 페이지의 예제에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지에서는 다음과 같은 MongoDB Ruby 드라이버 메서드를 사용합니다.
이 페이지의 예제에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지에서는 다음 MongoDB 스칼라 드라이버 를 사용합니다. 메서드:
이 페이지의 예제에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
db.inventory.insertMany( [ { item: "canvas", qty: 100, size: { h: 28, w: 35.5, uom: "cm" }, status: "A" }, { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, { item: "mat", qty: 85, size: { h: 27.9, w: 35.5, uom: "cm" }, status: "A" }, { item: "mousepad", qty: 25, size: { h: 19, w: 22.85, uom: "cm" }, status: "P" }, { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" }, { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" }, { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" }, { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }, { item: "sketchbook", qty: 80, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, { item: "sketch pad", qty: 95, size: { h: 22.85, w: 30.5, uom: "cm" }, status: "A" } ] );
[ { "item": "canvas", "qty": 100, "size": { "h": 28, "w": 35.5, "uom": "cm" }, "status": "A" }, { "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" }, { "item": "mat", "qty": 85, "size": { "h": 27.9, "w": 35.5, "uom": "cm" }, "status": "A" }, { "item": "mousepad", "qty": 25, "size": { "h": 19, "w": 22.85, "uom": "cm" }, "status": "P" }, { "item": "notebook", "qty": 50, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "P" }, { "item": "paper", "qty": 100, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "D" }, { "item": "planner", "qty": 75, "size": { "h": 22.85, "w": 30, "uom": "cm" }, "status": "D" }, { "item": "postcard", "qty": 45, "size": { "h": 10, "w": 15.25, "uom": "cm" }, "status": "A" }, { "item": "sketchbook", "qty": 80, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" }, { "item": "sketch pad", "qty": 95, "size": { "h": 22.85, "w": 30.5, "uom": "cm" }, "status": "A" } ]
MongoDB Compass를 사용하여 문서를 삽입하는 방법에 대한 지침은 문서 삽입을 참조하세요.
var documents = new[] { new BsonDocument { { "item", "canvas" }, { "qty", 100 }, { "size", new BsonDocument { { "h", 28 }, { "w", 35.5 }, { "uom", "cm" } } }, { "status", "A" } }, new BsonDocument { { "item", "journal" }, { "qty", 25 }, { "size", new BsonDocument { { "h", 14 }, { "w", 21 }, { "uom", "cm" } } }, { "status", "A" } }, new BsonDocument { { "item", "mat" }, { "qty", 85 }, { "size", new BsonDocument { { "h", 27.9 }, { "w", 35.5 }, { "uom", "cm" } } }, { "status", "A" } }, new BsonDocument { { "item", "mousepad" }, { "qty", 25 }, { "size", new BsonDocument { { "h", 19 }, { "w", 22.85 }, { "uom", "cm" } } }, { "status", "P" } }, new BsonDocument { { "item", "notebook" }, { "qty", 50 }, { "size", new BsonDocument { { "h", 8.5 }, { "w", 11 }, { "uom", "in" } } }, { "status", "P" } }, new BsonDocument { { "item", "paper" }, { "qty", 100 }, { "size", new BsonDocument { { "h", 8.5 }, { "w", 11 }, { "uom", "in" } } }, { "status", "D" } }, new BsonDocument { { "item", "planner" }, { "qty", 75 }, { "size", new BsonDocument { { "h", 22.85 }, { "w", 30 }, { "uom", "cm" } } }, { "status", "D" } }, new BsonDocument { { "item", "postcard" }, { "qty", 45 }, { "size", new BsonDocument { { "h", 10 }, { "w", 15.25 }, { "uom", "cm" } } }, { "status", "A" } }, new BsonDocument { { "item", "sketchbook" }, { "qty", 80 }, { "size", new BsonDocument { { "h", 14 }, { "w", 21 }, { "uom", "cm" } } }, { "status", "A" } }, new BsonDocument { { "item", "sketch pad" }, { "qty", 95 }, { "size", new BsonDocument { { "h", 22.85 }, { "w", 30.5 }, { "uom", "cm" } } }, { "status", "A" } }, }; collection.InsertMany(documents);
docs := []interface{}{ bson.D{ {"item", "canvas"}, {"qty", 100}, {"size", bson.D{ {"h", 28}, {"w", 35.5}, {"uom", "cm"}, }}, {"status", "A"}, }, bson.D{ {"item", "journal"}, {"qty", 25}, {"size", bson.D{ {"h", 14}, {"w", 21}, {"uom", "cm"}, }}, {"status", "A"}, }, bson.D{ {"item", "mat"}, {"qty", 85}, {"size", bson.D{ {"h", 27.9}, {"w", 35.5}, {"uom", "cm"}, }}, {"status", "A"}, }, bson.D{ {"item", "mousepad"}, {"qty", 25}, {"size", bson.D{ {"h", 19}, {"w", 22.85}, {"uom", "in"}, }}, {"status", "P"}, }, bson.D{ {"item", "notebook"}, {"qty", 50}, {"size", bson.D{ {"h", 8.5}, {"w", 11}, {"uom", "in"}, }}, {"status", "P"}, }, bson.D{ {"item", "paper"}, {"qty", 100}, {"size", bson.D{ {"h", 8.5}, {"w", 11}, {"uom", "in"}, }}, {"status", "D"}, }, bson.D{ {"item", "planner"}, {"qty", 75}, {"size", bson.D{ {"h", 22.85}, {"w", 30}, {"uom", "cm"}, }}, {"status", "D"}, }, bson.D{ {"item", "postcard"}, {"qty", 45}, {"size", bson.D{ {"h", 10}, {"w", 15.25}, {"uom", "cm"}, }}, {"status", "A"}, }, bson.D{ {"item", "sketchbook"}, {"qty", 80}, {"size", bson.D{ {"h", 14}, {"w", 21}, {"uom", "cm"}, }}, {"status", "A"}, }, bson.D{ {"item", "sketch pad"}, {"qty", 95}, {"size", bson.D{ {"h", 22.85}, {"w", 30.5}, {"uom", "cm"}, }}, {"status", "A"}, }, } result, err := coll.InsertMany(context.TODO(), docs)
Publisher<Success> insertManyPublisher = collection.insertMany(asList( Document.parse("{ item: 'canvas', qty: 100, size: { h: 28, w: 35.5, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'journal', qty: 25, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'mat', qty: 85, size: { h: 27.9, w: 35.5, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'mousepad', qty: 25, size: { h: 19, w: 22.85, uom: 'cm' }, status: 'P' }"), Document.parse("{ item: 'notebook', qty: 50, size: { h: 8.5, w: 11, uom: 'in' }, status: 'P' }"), Document.parse("{ item: 'paper', qty: 100, size: { h: 8.5, w: 11, uom: 'in' }, status: 'D' }"), Document.parse("{ item: 'planner', qty: 75, size: { h: 22.85, w: 30, uom: 'cm' }, status: 'D' }"), Document.parse("{ item: 'postcard', qty: 45, size: { h: 10, w: 15.25, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'sketchbook', qty: 80, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'sketch pad', qty: 95, size: { h: 22.85, w: 30.5, uom: 'cm' }, status: 'A' }") ));
collection.insertMany(asList( Document.parse("{ item: 'canvas', qty: 100, size: { h: 28, w: 35.5, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'journal', qty: 25, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'mat', qty: 85, size: { h: 27.9, w: 35.5, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'mousepad', qty: 25, size: { h: 19, w: 22.85, uom: 'cm' }, status: 'P' }"), Document.parse("{ item: 'notebook', qty: 50, size: { h: 8.5, w: 11, uom: 'in' }, status: 'P' }"), Document.parse("{ item: 'paper', qty: 100, size: { h: 8.5, w: 11, uom: 'in' }, status: 'D' }"), Document.parse("{ item: 'planner', qty: 75, size: { h: 22.85, w: 30, uom: 'cm' }, status: 'D' }"), Document.parse("{ item: 'postcard', qty: 45, size: { h: 10, w: 15.25, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'sketchbook', qty: 80, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'sketch pad', qty: 95, size: { h: 22.85, w: 30.5, uom: 'cm' }, status: 'A' }") ));
await db.inventory.insert_many( [ { "item": "canvas", "qty": 100, "size": {"h": 28, "w": 35.5, "uom": "cm"}, "status": "A", }, { "item": "journal", "qty": 25, "size": {"h": 14, "w": 21, "uom": "cm"}, "status": "A", }, { "item": "mat", "qty": 85, "size": {"h": 27.9, "w": 35.5, "uom": "cm"}, "status": "A", }, { "item": "mousepad", "qty": 25, "size": {"h": 19, "w": 22.85, "uom": "cm"}, "status": "P", }, { "item": "notebook", "qty": 50, "size": {"h": 8.5, "w": 11, "uom": "in"}, "status": "P", }, { "item": "paper", "qty": 100, "size": {"h": 8.5, "w": 11, "uom": "in"}, "status": "D", }, { "item": "planner", "qty": 75, "size": {"h": 22.85, "w": 30, "uom": "cm"}, "status": "D", }, { "item": "postcard", "qty": 45, "size": {"h": 10, "w": 15.25, "uom": "cm"}, "status": "A", }, { "item": "sketchbook", "qty": 80, "size": {"h": 14, "w": 21, "uom": "cm"}, "status": "A", }, { "item": "sketch pad", "qty": 95, "size": {"h": 22.85, "w": 30.5, "uom": "cm"}, "status": "A", }, ] )
await db.collection('inventory').insertMany([ { item: 'canvas', qty: 100, size: { h: 28, w: 35.5, uom: 'cm' }, status: 'A' }, { item: 'journal', qty: 25, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }, { item: 'mat', qty: 85, size: { h: 27.9, w: 35.5, uom: 'cm' }, status: 'A' }, { item: 'mousepad', qty: 25, size: { h: 19, w: 22.85, uom: 'cm' }, status: 'P' }, { item: 'notebook', qty: 50, size: { h: 8.5, w: 11, uom: 'in' }, status: 'P' }, { item: 'paper', qty: 100, size: { h: 8.5, w: 11, uom: 'in' }, status: 'D' }, { item: 'planner', qty: 75, size: { h: 22.85, w: 30, uom: 'cm' }, status: 'D' }, { item: 'postcard', qty: 45, size: { h: 10, w: 15.25, uom: 'cm' }, status: 'A' }, { item: 'sketchbook', qty: 80, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }, { item: 'sketch pad', qty: 95, size: { h: 22.85, w: 30.5, uom: 'cm' }, status: 'A' } ]);
$db->coll("inventory")->insert_many( [ { item => "canvas", qty => 100, size => { h => 28, w => 35.5, uom => "cm" }, status => "A" }, { item => "journal", qty => 25, size => { h => 14, w => 21, uom => "cm" }, status => "A" }, { item => "mat", qty => 85, size => { h => 27.9, w => 35.5, uom => "cm" }, status => "A" }, { item => "mousepad", qty => 25, size => { h => 19, w => 22.85, uom => "cm" }, status => "P" }, { item => "notebook", qty => 50, size => { h => 8.5, w => 11, uom => "in" }, status => "P" }, { item => "paper", qty => 100, size => { h => 8.5, w => 11, uom => "in" }, status => "D" }, { item => "planner", qty => 75, size => { h => 22.85, w => 30, uom => "cm" }, status => "D" }, { item => "postcard", qty => 45, size => { h => 10, w => 15.25, uom => "cm" }, status => "A" }, { item => "sketchbook", qty => 80, size => { h => 14, w => 21, uom => "cm" }, status => "A" }, { item => "sketch pad", qty => 95, size => { h => 22.85, w => 30.5, uom => "cm" }, status => "A" } ] );
$insertManyResult = $db->inventory->insertMany([ [ 'item' => 'canvas', 'qty' => 100, 'size' => ['h' => 28, 'w' => 35.5, 'uom' => 'cm'], 'status' => 'A', ], [ 'item' => 'journal', 'qty' => 25, 'size' => ['h' => 14, 'w' => 21, 'uom' => 'cm'], 'status' => 'A', ], [ 'item' => 'mat', 'qty' => 85, 'size' => ['h' => 27.9, 'w' => 35.5, 'uom' => 'cm'], 'status' => 'A', ], [ 'item' => 'mousepad', 'qty' => 25, 'size' => ['h' => 19, 'w' => 22.85, 'uom' => 'cm'], 'status' => 'P', ], [ 'item' => 'notebook', 'qty' => 50, 'size' => ['h' => 8.5, 'w' => 11, 'uom' => 'in'], 'status' => 'P', ], [ 'item' => 'paper', 'qty' => 100, 'size' => ['h' => 8.5, 'w' => 11, 'uom' => 'in'], 'status' => 'D', ], [ 'item' => 'planner', 'qty' => 75, 'size' => ['h' => 22.85, 'w' => 30, 'uom' => 'cm'], 'status' => 'D', ], [ 'item' => 'postcard', 'qty' => 45, 'size' => ['h' => 10, 'w' => 15.25, 'uom' => 'cm'], 'status' => 'A', ], [ 'item' => 'sketchbook', 'qty' => 80, 'size' => ['h' => 14, 'w' => 21, 'uom' => 'cm'], 'status' => 'A', ], [ 'item' => 'sketch pad', 'qty' => 95, 'size' => ['h' => 22.85, 'w' => 30.5, 'uom' => 'cm'], 'status' => 'A', ], ]);
db.inventory.insert_many( [ { "item": "canvas", "qty": 100, "size": {"h": 28, "w": 35.5, "uom": "cm"}, "status": "A", }, { "item": "journal", "qty": 25, "size": {"h": 14, "w": 21, "uom": "cm"}, "status": "A", }, { "item": "mat", "qty": 85, "size": {"h": 27.9, "w": 35.5, "uom": "cm"}, "status": "A", }, { "item": "mousepad", "qty": 25, "size": {"h": 19, "w": 22.85, "uom": "cm"}, "status": "P", }, { "item": "notebook", "qty": 50, "size": {"h": 8.5, "w": 11, "uom": "in"}, "status": "P", }, { "item": "paper", "qty": 100, "size": {"h": 8.5, "w": 11, "uom": "in"}, "status": "D", }, { "item": "planner", "qty": 75, "size": {"h": 22.85, "w": 30, "uom": "cm"}, "status": "D", }, { "item": "postcard", "qty": 45, "size": {"h": 10, "w": 15.25, "uom": "cm"}, "status": "A", }, { "item": "sketchbook", "qty": 80, "size": {"h": 14, "w": 21, "uom": "cm"}, "status": "A", }, { "item": "sketch pad", "qty": 95, "size": {"h": 22.85, "w": 30.5, "uom": "cm"}, "status": "A", }, ] )
client[:inventory].insert_many([ { item: 'canvas', qty: 100, size: { h: 28, w: 35.5, uom: 'cm' }, status: 'A' }, { item: 'journal', qty: 25, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }, { item: 'mat', qty: 85, size: { h: 27.9, w: 35.5, uom: 'cm' }, status: 'A' }, { item: 'mousepad', qty: 25, size: { h: 19, w: 22.85, uom: 'cm' }, status: 'P' }, { item: 'notebook', qty: 50, size: { h: 8.5, w: 11, uom: 'in' }, status: 'P' }, { item: 'paper', qty: 100, size: { h: 8.5, w: 11, uom: 'in' }, status: 'D' }, { item: 'planner', qty: 75, size: { h: 22.85, w: 30, uom: 'cm' }, status: 'D' }, { item: 'postcard', qty: 45, size: { h: 10, w: 15.25, uom: 'cm' }, status: 'A' }, { item: 'sketchbook', qty: 80, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }, { item: 'sketch pad', qty: 95, size: { h: 22.85, w: 30.5, uom: 'cm' }, status: 'A' } ])
collection.insertMany(Seq( Document("""{ item: "canvas", qty: 100, size: { h: 28, w: 35.5, uom: "cm" }, status: "A" }"""), Document("""{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }"""), Document("""{ item: "mat", qty: 85, size: { h: 27.9, w: 35.5, uom: "cm" }, status: "A" }"""), Document("""{ item: "mousepad", qty: 25, size: { h: 19, w: 22.85, uom: "cm" }, status: "P" }"""), Document("""{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" }"""), Document("""{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" }"""), Document("""{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" }"""), Document("""{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }"""), Document("""{ item: "sketchbook", qty: 80, size: { h: 14, w: 21, uom: "cm" }, status: "A" }"""), Document("""{ item: "sketch pad", qty: 95, size: { h: 22.85, w: 30.5, uom: "cm" }, status: "A" }""") )).execute()
컬렉션의 문서 업데이트
Compass에서 문서를 업데이트하려면 대상 문서 위에 마우스를 놓고 연필 아이콘을 클릭합니다.
![문서 편집을 클릭합니다.](/ko-kr/docs/v5.0/static/1e81ba91b2d97277fced97fe9047e31f/be780/compass-update-doc-button.webp)
연필 아이콘을 클릭하면 문서가 편집 모드로 전환됩니다.
![문서 편집 모드](/ko-kr/docs/v5.0/static/a871a23474b6b54234970d338dcb6cc5/2917f/compass-update-edit-mode.webp)
이제 변경하려는 항목을 클릭하고 값을 수정하여 이 문서를 변경할 수 있습니다.
Compass에서 문서를 업데이트하는 방법에 대한 자세한 지침은 Compass 설명서 를 참조하거나 아래 예시를 따르세요.
변경 사항에 만족하면 Update 을 클릭하여 업데이트된 문서를 저장합니다.
문서에 대한 수정 사항을 되돌리고 편집 모드를 종료하려면 Cancel 을(를) 클릭합니다.
문서를 업데이트하기 위해 MongoDB는 필드 값을 수정하는 $set
와(과) 같은 업데이트 연산자를 제공합니다.
드라이버는 com.mongodb.client.model.Updates 를 제공합니다. 클래스를 사용하여 업데이트 문서를 쉽게 만들 수 있습니다. 예를 들면 다음과 같습니다.
combine(set( <field1>, <value1>), set(<field2>, <value2> ) )
업데이트 헬퍼 목록은 com.mongodb.client.model.Updates를 참조하세요.
$set
와 같은 일부 업데이트 연산자는 필드가 존재하지 않는 경우 필드를 생성합니다. 자세한 내용은 개별 업데이트 연산자 참조를 참조하세요.
문서를 업데이트하기 위해 MongoDB는 필드 값을 수정하는 $set
와(과) 같은 업데이트 연산자를 제공합니다.
드라이버는 com.mongodb.client.model.Updates 를 제공합니다. 클래스를 사용하여 업데이트 문서를 쉽게 만들 수 있습니다. 예를 들면 다음과 같습니다.
combine(set( <field1>, <value1>), set(<field2>, <value2> ) )
업데이트 헬퍼 목록은 com.mongodb.client.model.Updates를 참조하세요.
$set
와 같은 일부 업데이트 연산자는 필드가 존재하지 않는 경우 필드를 생성합니다. 자세한 내용은 개별 업데이트 연산자 참조를 참조하세요.
참고
MongoDB는 업데이트 문서 대신 수정 사항을 지정하는 집계 파이프라인을 사용할 수 있습니다. 자세한 내용은 메서드 참조 페이지를 참조하세요.
단일 문서 업데이트
다음 예제에서는 inventory
컬렉션에서 db.collection.updateOne()
메서드를 사용하여 item
가 "paper"
인 첫 번째 문서를 업데이트합니다.
다음 예제에서는 MongoDB Compass를 사용하여 item: paper
inventory
collection에서 이 위치하는 문서를 수정하는 방법을 보여 줍니다.
참고
이 예에서는 Compass Table View를 사용하여 문서를 수정합니다. Compass List View를 사용한 편집 프로세스는 매우 유사한 접근 방식을 따릅니다.
Compass의 테이블 보기와 목록 보기 간의 차이점에 대한 자세한 내용은 Compass 설명서를 참조하세요.
다음 예제에서는 IMongoCollection.UpdateOne() 메서드를 사용하여 컬렉션에서 가 inventory
인 첫 번째 문서를 item
"paper"
업데이트합니다.
다음 예제에서는 Collection.UpdateOne 메서드를 사용하여 inventory
컬렉션에서 가 인 첫 번째 문서를 item
"paper"
업데이트합니다.
다음 예시에서는 inventory
컬렉션에서 com.mongodb.reactivestreams.client.MongoCollection.updateOne을 사용하여 item
이(가) "paper"
와(과) 같은 첫 번째 문서를 업데이트합니다.
다음 예제에서는 com.mongodb.client.MongoCollection.updateOne 메서드를 사용하여 컬렉션에서 inventory
가 인 첫 번째 문서를 item
"paper"
업데이트합니다.
다음 예제에서는 를 사용합니다. 메서드를 사용하여 update_one
inventory
컬렉션에서 이 인 첫 번째 문서를 업데이트합니다.item
"paper"
다음 예시에서는 Collection.updateOne() 을 inventory
컬렉션에서 사용하여 item
이(가) "paper"
와(과) 동일한 첫 번째 문서를 업데이트합니다.
다음 예제에서는 update_one() 메서드를 사용하여 inventory
컬렉션에서 가 인 첫 번째 문서를 item
"paper"
업데이트합니다.
다음 예제에서는 inventory
컬렉션에서 updateOne()
메서드를 사용하여 item
가 "paper"
인 첫 번째 문서를 업데이트합니다.
다음 예제에서는 를 사용합니다. 메서드를 사용하여 update_one
inventory
컬렉션에서 이 인 첫 번째 문서를 업데이트합니다.item
"paper"
다음 예제에서는 inventory
컬렉션에서 update_one() 메서드를 사용하여 item
가 "paper"
인 첫 번째 문서를 업데이트합니다.
다음 예제에서는 updateOne() 메서드를 사용하여 inventory
컬렉션에서 가 인 첫 번째 문서를 item
"paper"
업데이트합니다.
db.inventory.updateOne( { item: "paper" }, { $set: { "size.uom": "cm", status: "P" }, $currentDate: { lastModified: true } } )
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"cm"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
다음과 같이 대상 문서를 수정합니다.
status
필드를D
에서P
로 변경합니다.size.uom
필드를in
에서cm
로 변경합니다.값이 오늘 날짜가 되는
lastModified
(이)라는 새 필드를 추가합니다.
테이블 뷰에 액세스하려면 상단 탐색 메뉴에서 Table 버튼을 클릭합니다.
Compass 쿼리 표시줄 을 사용하여 대상 문서를 찾습니다.
다음 필터 문서를 쿼리 표시줄에 복사하고 Find 을(를) 클릭합니다.
{ item: "paper" } status
필드 위로 마우스를 가져간 다음 문서 오른쪽에 나타나는 연필 아이콘을 클릭하여 편집 모드로 들어갑니다.필드 값을
"P"
(으)로 변경합니다.필드 아래의 Update 버튼을 클릭하여 변경 사항을 저장합니다.
size
필드 위로 마우스를 가져간 다음 필드 오른쪽에 표시되는 바깥쪽 화살표를 클릭합니다. 그러면size
객체 내의 필드를 표시하는 새 탭이 열립니다.status
필드를 편집하기 위해 3-5 단계에 설명된 것과 동일한 프로세스를 사용하여size.uom
필드의 값을"cm"
(으)로 변경합니다.inventory
레이블이 지정된 테이블 위의 맨 왼쪽 탭을 클릭하면 최상위 문서가 표시되는 원래 테이블 뷰로 돌아갑니다.status
필드 위로 마우스를 가져간 다음 문서 오른쪽에 나타나는 연필 아이콘을 클릭하여 편집 모드로 다시 들어갑니다.status
필드 내부를 클릭하고 편집 메뉴에 표시되는 plus button 아이콘을 클릭합니다.더하기 버튼 아래에 있는 Add Field After status 버튼을 클릭합니다.
오늘 날짜 값을 가진
lastModified
라는 새 필드를 추가합니다. 필드 유형을Date
로 설정합니다.필드 아래의 Update 버튼을 클릭하여 변경 사항을 저장합니다.
참고
MongoDB Compass는
$currentDate
또는 다른 필드 업데이트 연산자 를 지원하지 않으므로 Compass에 날짜 값을 수동으로 입력해야 합니다.
var filter = Builders<BsonDocument>.Filter.Eq("item", "paper"); var update = Builders<BsonDocument>.Update.Set("size.uom", "cm").Set("status", "P").CurrentDate("lastModified"); var result = collection.UpdateOne(filter, update);
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"cm"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
result, err := coll.UpdateOne( context.TODO(), bson.D{ {"item", "paper"}, }, bson.D{ {"$set", bson.D{ {"size.uom", "cm"}, {"status", "P"}, }}, {"$currentDate", bson.D{ {"lastModified", true}, }}, }, )
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"cm"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
Publisher<UpdateResult> updateOnePublisher = collection.updateOne(eq("item", "paper"), combine(set("size.uom", "cm"), set("status", "P"), currentDate("lastModified")));
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"cm"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
collection.updateOne(eq("item", "paper"), combine(set("size.uom", "cm"), set("status", "P"), currentDate("lastModified")));
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"cm"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
await db.inventory.update_one( {"item": "paper"}, {"$set": {"size.uom": "cm", "status": "P"}, "$currentDate": {"lastModified": True}}, )
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"cm"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
await db.collection('inventory').updateOne( { item: 'paper' }, { $set: { 'size.uom': 'cm', status: 'P' }, $currentDate: { lastModified: true } } );
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"cm"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
# For boolean values, use boolean.pm for 'true' and 'false' $db->coll("inventory")->update_one( { item => "paper" }, { '$set' => { "size.uom" => "cm", status => "P" }, '$currentDate' => { lastModified => true } } );
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"cm"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
$updateResult = $db->inventory->updateOne( ['item' => 'paper'], [ '$set' => ['size.uom' => 'cm', 'status' => 'P'], '$currentDate' => ['lastModified' => true], ], );
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"cm"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
db.inventory.update_one( {"item": "paper"}, {"$set": {"size.uom": "cm", "status": "P"}, "$currentDate": {"lastModified": True}}, )
client[:inventory].update_one({ item: 'paper'}, { '$set' => { 'size.uom' => 'cm', 'status' => 'P' }, '$currentDate' => { 'lastModified' => true } })
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"cm"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
collection.updateOne(equal("item", "paper"), combine(set("size.uom", "cm"), set("status", "P"), currentDate("lastModified")) ).execute()
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"cm"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
여러 문서 업데이트하기
버전 3.2에 새로 추가되었습니다.
다음 예제에서는 inventory
컬렉션에 db.collection.updateMany()
메서드를 사용하여 qty
가 50
보다 작은 모든 문서를 업데이트합니다:
MongoDB Compass에서는 한 번에 하나의 문서만 업데이트할 수 있습니다. 여러 문서를 업데이트하려면 mongosh
또는 MongoDB 드라이버에서 MongoDB 배포서버에 연결하고 이 섹션의 예제에 따라 원하는 방법을 선택합니다.
다음 예시에서는 inventory
컬렉션에서 IMongoCollection.UpdateMany() 메서드를 사용해 qty
이(가) 50
미만인 모든 문서를 업데이트합니다.
다음 예제에서는 Collection.UpdateMany 메서드를 사용하여 inventory
컬렉션에서 qty
가 미만인 모든 문서를 업데이트합니다.50
다음 예시에서는 inventory
컬렉션에 com.mongodb.reactivestreams.client.MongoCollection.updateMany 메서드를 사용하여 qty
이(가) 50
미만인 모든 문서를 업데이트합니다.
다음 예제에서는 com.mongodb.client.MongoCollection.updateMany 메서드를 사용하여 inventory
컬렉션에서 qty
가 미만인 모든 문서를 업데이트합니다.50
버전 3.2에 새로 추가되었습니다.
다음 예제에서는 를 사용합니다. 메서드를 사용하여 update_many
inventory
컬렉션에서 qty
가 미만인 모든 문서를 업데이트합니다.50
다음 예시에서는 Collection.updateMany()를 사용합니다. inventory
컬렉션에서 qty
가 50
미만인 모든 문서를 업데이트하는 메서드.
다음 예제에서는 update_many() 메서드를 사용하여 컬렉션에서 inventory
qty
가 미만인 모든 문서를 업데이트합니다.50
다음 예시에서는 inventory
컬렉션에서 updateMany()
메서드를 사용하여 qty
이(가) 50
보다 작은 모든 문서를 업데이트합니다.
버전 3.2에 새로 추가되었습니다.
다음 예제에서는 를 사용합니다. 메서드를 사용하여 update_many
inventory
컬렉션에서 qty
가 미만인 모든 문서를 업데이트합니다.50
다음 예제에서는 inventory
컬렉션에서 update_many() 메서드를 사용하여 qty
가 50
미만인 모든 문서를 업데이트합니다.
다음 예제에서는 updateMany() 메서드 를 사용합니다. 메서드를 사용하여 컬렉션에서 inventory
가 qty
미만인 모든 문서를 업데이트합니다.50
db.inventory.updateMany( { "qty": { $lt: 50 } }, { $set: { "size.uom": "in", status: "P" }, $currentDate: { lastModified: true } } )
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"in"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
var filter = Builders<BsonDocument>.Filter.Lt("qty", 50); var update = Builders<BsonDocument>.Update.Set("size.uom", "in").Set("status", "P").CurrentDate("lastModified"); var result = collection.UpdateMany(filter, update);
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"in"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
result, err := coll.UpdateMany( context.TODO(), bson.D{ {"qty", bson.D{ {"$lt", 50}, }}, }, bson.D{ {"$set", bson.D{ {"size.uom", "cm"}, {"status", "P"}, }}, {"$currentDate", bson.D{ {"lastModified", true}, }}, }, )
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"in"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
Publisher<UpdateResult> updateManyPublisher = collection.updateMany(lt("qty", 50), combine(set("size.uom", "in"), set("status", "P"), currentDate("lastModified")));
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"in"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
collection.updateMany(lt("qty", 50), combine(set("size.uom", "in"), set("status", "P"), currentDate("lastModified")));
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"in"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
await db.inventory.update_many( {"qty": {"$lt": 50}}, {"$set": {"size.uom": "in", "status": "P"}, "$currentDate": {"lastModified": True}}, )
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"in"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
await db.collection('inventory').updateMany( { qty: { $lt: 50 } }, { $set: { 'size.uom': 'in', status: 'P' }, $currentDate: { lastModified: true } } );
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"in"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
# For boolean values, use boolean.pm for 'true' and 'false' $db->coll("inventory")->update_many( { qty => { '$lt' => 50 } }, { '$set' => { "size.uom" => "in", status => "P" }, '$currentDate' => { lastModified => true } } );
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"in"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
$updateResult = $db->inventory->updateMany( ['qty' => ['$lt' => 50]], [ '$set' => ['size.uom' => 'cm', 'status' => 'P'], '$currentDate' => ['lastModified' => true], ], );
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"in"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
db.inventory.update_many( {"qty": {"$lt": 50}}, {"$set": {"size.uom": "in", "status": "P"}, "$currentDate": {"lastModified": True}}, )
client[:inventory].update_many({ qty: { '$lt' => 50 } }, { '$set' => { 'size.uom' => 'in', 'status' => 'P' }, '$currentDate' => { 'lastModified' => true } })
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"in"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
collection.updateMany(lt("qty", 50), combine(set("size.uom", "in"), set("status", "P"), currentDate("lastModified")) ).execute()
업데이트 작업입니다:
$set
연산자를 사용하여size.uom
필드 값을"in"
로,status
필드 값을"P"
로 업데이트합니다.$currentDate
연산자를 사용하여lastModified
필드의 값을 현재 날짜로 업데이트합니다.lastModified
필드가 존재하지 않으면$currentDate
에서 필드를 만듭니다. 자세한 내용은$currentDate
를 참조하세요.
문서 교체하기
_id
필드를 제외한 문서의 전체 내용을 바꾸려면 완전히 새로운 문서를 두 번째 인수로 db.collection.replaceOne()
에 전달합니다.
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
MongoDB Compass에서는 문서를 바꿀 수 없습니다. 문서를 교체하려면 mongosh
또는 MongoDB 드라이버에서 MongoDB deployment에 연결하고 이 섹션의 예제에 따라 원하는 방법을 선택합니다.
필드를 제외한 문서의 전체 내용을 바꾸려면 _id
완전히 새로운 문서를 두 번째 인수로 IMongoCollection.ReplaceOne()에 전달합니다.
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
필드를 제외한 문서의 전체 내용을 바꾸려면 _id
완전히 새로운 문서를 두 번째 인수로 Collection.ReplaceOne에 전달합니다.
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
_id
필드를 제외한 문서의 전체 내용을 바꾸려면 완전히 새로운 문서를 com.mongodb.reactivestreams.client.MongoCollection.replaceOne의 두 번째 인수로 전달합니다.
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
필드를 제외한 문서의 전체 내용을 바꾸려면 _id
완전히 새로운 문서를 두 번째 인수로 com.mongodb.client.MongoCollection.replaceOne에 전달합니다.
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
필드를 제외한 문서의 전체 내용을 바꾸려면 _id
완전히 새로운 문서를 두 번째 인수로 replace_one
에 전달합니다.
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
_id
필드를 제외한 문서의 전체 내용을 바꾸려면 완전히 새로운 문서를 Collection.replaceOne()의 두 번째 인수로 전달합니다.
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
필드를 제외한 문서의 전체 내용을 바꾸려면 _id
완전히 새로운 문서를 두 번째 인수로 replace_one()에 전달합니다.
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
_id
필드를 제외한 문서의 전체 내용을 바꾸려면 완전히 새로운 문서를 두 번째 인수로 replaceOne()
에 전달합니다.
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
필드를 제외한 문서의 전체 내용을 바꾸려면 _id
완전히 새로운 문서를 두 번째 인수로 replace_one
에 전달합니다.
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
_id
필드를 제외한 문서의 전체 내용을 바꾸려면 완전히 새로운 문서를 두 번째 인수로 replace_one()에 전달합니다.
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
필드를 제외한 문서의 전체 내용을 바꾸려면 _id
완전히 새로운 문서를 두 번째 인수로 전달 합니다 .
문서를 교체할 때 교체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식을 포함할 수 없습니다.
대체 문서에는 원본 문서와 다른 필드가 있을 수 있습니다. 대체 문서에서 _id
필드는 변경되지 않으므로 _id
필드를 생략할 수 있습니다. 그러나 _id
필드를 포함하는 경우 현재 값과 동일한 값을 가져야 합니다.
다음 예제에서는 item: "paper"
이 다음을 충족하는 inventory
컬렉션의 첫 번째 문서를 대체합니다.
db.inventory.replaceOne( { item: "paper" }, { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] } )
var filter = Builders<BsonDocument>.Filter.Eq("item", "paper"); var replacement = new BsonDocument { { "item", "paper" }, { "instock", new BsonArray { new BsonDocument { { "warehouse", "A" }, { "qty", 60 } }, new BsonDocument { { "warehouse", "B" }, { "qty", 40 } } } } }; var result = collection.ReplaceOne(filter, replacement);
result, err := coll.ReplaceOne( context.TODO(), bson.D{ {"item", "paper"}, }, bson.D{ {"item", "paper"}, {"instock", bson.A{ bson.D{ {"warehouse", "A"}, {"qty", 60}, }, bson.D{ {"warehouse", "B"}, {"qty", 40}, }, }}, }, )
Publisher<UpdateResult> replaceOnePublisher = collection.replaceOne(eq("item", "paper"), Document.parse("{ item: 'paper', instock: [ { warehouse: 'A', qty: 60 }, { warehouse: 'B', qty: 40 } ] }"));
collection.replaceOne(eq("item", "paper"), Document.parse("{ item: 'paper', instock: [ { warehouse: 'A', qty: 60 }, { warehouse: 'B', qty: 40 } ] }"));
await db.inventory.replace_one( {"item": "paper"}, { "item": "paper", "instock": [{"warehouse": "A", "qty": 60}, {"warehouse": "B", "qty": 40}], }, )
await db.collection('inventory').replaceOne( { item: 'paper' }, { item: 'paper', instock: [ { warehouse: 'A', qty: 60 }, { warehouse: 'B', qty: 40 } ] } );
$db->coll("inventory")->replace_one( { item => "paper" }, { item => "paper", instock => [ { warehouse => "A", qty => 60 }, { warehouse => "B", qty => 40 } ] } );
$updateResult = $db->inventory->replaceOne( ['item' => 'paper'], [ 'item' => 'paper', 'instock' => [ ['warehouse' => 'A', 'qty' => 60], ['warehouse' => 'B', 'qty' => 40], ], ], );
db.inventory.replace_one( {"item": "paper"}, { "item": "paper", "instock": [{"warehouse": "A", "qty": 60}, {"warehouse": "B", "qty": 40}], }, )
client[:inventory].replace_one({ item: 'paper' }, { item: 'paper', instock: [ { warehouse: 'A', qty: 60 }, { warehouse: 'B', qty: 40 } ] })
collection.replaceOne(equal("item", "paper"), Document("""{ item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }""") ).execute()
MongoDB Atlas로 문서 업데이트하기
참고
MongoDB Atlas UI에서는 한 번에 하나의 문서만 업데이트할 수 있습니다. 여러 문서를 업데이트하거나 전체 문서를 바꾸려면 mongosh
또는 MongoDB 드라이버에서 Atlas 배포에 연결하고 이 페이지의 예시를 따라 원하는 방법을 수행합니다.
이 섹션의 예시에서는 샘플 소모품 데이터 세트를 사용합니다. MongoDB Atlas 배포서버에 샘플 데이터세트를 로드하는 방법을 알아보려면 샘플 데이터 로드를 참조하세요.
MongoDB Atlas에서 문서를 업데이트하려면 다음 단계에 따릅니다.
쿼리 필터 문서를 지정합니다.
Filter 필드에 쿼리 필터 문서를 지정할 수 있습니다. 쿼리 필터 문서는 쿼리 연산자를 사용하여 검색 조건을 지정합니다.
다음 쿼리 필터 문서를 Filter 검색 바에 복사하고 Apply를 클릭합니다.
{ saleDate: { $gte: { $date: "2016-01-01T00:00-00:00" }, $lte: { $date: "2016-01-02T00:00-00:00" } } }
이 쿼리 필터는 sample_supplies.sales
컬렉션의 모든 문서 중 saleDate
이 2016년 1월 1일과 2일(UTC 기준)에 있는 문서를 반환합니다.
문서를 편집합니다.
쿼리 결과에 표시된 문서를 수정하려면 문서 위에 마우스를 올린 후 연필 아이콘을 클릭합니다. 문서 편집기에서 다음을 실행할 수 있습니다.
새 필드를 추가합니다.
기존 필드를 삭제합니다.
필드의 이름, 값 또는 유형을 편집합니다.
특정 변경 사항을 되돌립니다.
자세한 지침은 문서 생성, 보기, 업데이트 및 삭제를 참조하세요.
행동
원자성
MongoDB의 모든 쓰기 작업은 단일 문서 수준에서 원자적으로 이루어집니다. MongoDB 및 원자성에 대한 자세한 내용은 원자성 및 트랜잭션에서 확인 가능합니다.
_id
필드
설정한 후에는 _id
필드 값을 업데이트할 수 없으며 기존 문서를 _id
필드 값이 문서로 대체할 수 없습니다.
필드 순서
쓰기 조작의 경우 MongoDB는 다음과 같은 경우를 제외하고 문서 필드의 순서를 유지합니다.
_id
필드는 항상 문서에서 첫 번째 필드입니다.renaming
개의 필드 이름이 포함된 업데이트는 문서에서 필드의 순서를 변경할 수 있습니다.
업서트 옵션
updateOne()
, updateMany()
또는 replaceOne()
에 upsert : true
가 포함되어 있고 동시에 지정된 필터와 일치하는 문서가 없는 경우, 새 문서를 만들어 삽입하는 작업을 수행합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
업서트 옵션은 MongoDB Compass를 통해 사용할 수 없습니다.
UpdateOne() 이 , UpdateMany(), 또는 ReplaceOne() UpdateOptions 포함 IsUpsert
true
옵션이 로 설정되어 있고 지정된 필터와 일치하는 문서가 없는 경우 작업은 새 문서를 만들고 삽입합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
만약 Collection.UpdateOne 업서트 옵션이 true로 설정된 경우를 포함합니다. 지정된 필터 와 일치하는 문서가 없는 경우 작업은 새 문서를 만들고 삽입합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
업데이트 및 교체 메서드에 UpdateOptions.upsert(true)를 지정하는 UpdateOptions 매개변수가 포함되어 있고 동시에 지정된 필터와 일치하는 문서가 없는 경우 작업은 새 문서를 만들고 삽입합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
업데이트 및 교체 메서드에 com.mongodb.client.model.UpdateOptions.upsert(true)를 지정하는 com.mongodb.client.model.UpdateOptions 매개변수가 포함되어 있고 동시에 지정된 필터와 일치하는 문서가 없으면 작업에서 새 문서를 만들고 삽입합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
update_one
, update_many
또는 replace_one
에 upsert : true
이(가) 포함되어 있고 동시에 지정된 필터와 일치하는 문서가 없는 경우, 새 문서를 만들어 삽입하는 작업을 수행합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
options
매개변수 문서에서 updateOne(), updateMany() 또는 replaceOne()이 upsert : true
을(를) 포함하고 동시에 지정된 필터와 일치하는 문서가 없는 경우 이 작업은 새 문서를 생성하여 삽입합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
update_one() 이 , update_many(), 또는 replace_one() upsert => true
를 포함하고 지정된 필터와 일치하는 문서가 없는 경우 작업은 새 문서를 만들고 삽입합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
updateOne()
, updateMany()
또는 replaceOne()
에 upsert =>
true
가 포함되어 있고 지정된 필터 와 일치하는 문서가 없는 경우 작업은 새 문서를 만들고 삽입합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
update_one
, update_many
또는 replace_one
에 upsert : true
이(가) 포함되어 있고 동시에 지정된 필터와 일치하는 문서가 없는 경우, 새 문서를 만들어 삽입하는 작업을 수행합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
update_one(), update_many() 또는 replace_one() 에 upsert => true
가 포함되어 있고 지정된 필터 와 일치하는 문서가 없는 경우 작업은 새 문서를 만들고 삽입합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
updateOne() 이 , updateMany(), 또는 replaceOne() upsert => true
를 포함하고 지정된 필터와 일치하는 문서가 없는 경우 작업은 새 문서를 만들고 삽입합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
쓰기 승인
쓰기 고려를 사용하여 MongoDB에서 쓰기 작업에 요청한 승인 수준을 지정할 수 있습니다. 자세한 내용은 쓰기 고려 항목에서 확인 가능합니다.