문서 업데이트
다음 방법을 사용하여 MongoDB에서 문서를 업데이트할 수 있습니다:
프로그래밍 언어의 드라이버입니다.
MongoDB Atlas UI. 자세한 내용은 MongoDB Atlas로 문서 업데이트를 참조하세요.
➤ 오른쪽 상단의 언어 선택 드롭다운 메뉴를 사용하여 다음 예시의 언어를 설정합니다.
이 페이지에서는 다음 mongosh
메서드를 사용합니다.
이 페이지의 예시에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지에서는 MongoDB Compass를 사용하여 문서를 업데이트합니다.
이 페이지의 예시에서는 inventory
컬렉션을 사용합니다. inventory
컬렉션을 다음 문서로 채웁니다.
이 페이지에서는 다음 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 동기식 드라이버 메서드를 사용합니다:
이 페이지의 예시에서는 inventory
컬렉션을 사용합니다. MongoDB 인스턴스의 테스트 데이터베이스에 연결한 다음 inventory
컬렉션을 만듭니다:
이 페이지에서는 다음 Motor 드라이버 메서드를 사용합니다:
이 페이지의 예시에서는 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 Scala 드라이버 메서드를 사용합니다.
이 페이지의 예시에서는 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에서 문서를 업데이트하려면 대상 문서 위에 마우스를 놓고 연필 아이콘을 클릭합니다.
연필 아이콘을 클릭하면 문서가 편집 모드로 전환됩니다.
이제 변경하려는 항목을 클릭하고 값을 수정하여 이 문서를 변경할 수 있습니다.
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를 사용하여 inventory
컬렉션에서 item: paper
단일 문서를 수정하는 방법을 보여 줍니다.
참고
이 예시 에서는 Compass 테이블 뷰를 사용하여 문서 를 수정합니다. Compass 목록 보기를 사용한 편집 프로세스 도 비슷한 접근 방식을 따릅니다.
Compass의 테이블 보기와 목록 보기 간의 차이점에 대한 자세한 내용은 Compass 설명서를 참조하세요.
다음 예시에서는 inventory
컬렉션에서 IMongoCollection.UpdateOne() 메서드를 사용하여 item
이 "paper"
와 같은 첫 번째 문서를 업데이트합니다.
다음 예시에서는 inventory
컬렉션에서 Collection.UpdateOne 메서드를 사용하여 item
이 "paper"
와 같은 첫 번째 문서를 업데이트합니다.
다음 예시에서는 inventory
컬렉션에서 com.mongodb.reactivestreams.client.MongoCollection.updateOne을 사용하여 item
이(가) "paper"
와(과) 같은 첫 번째 문서를 업데이트합니다.
다음 예시에서는 inventory
컬렉션에 com.mongodb.client.MongoCollection.updateOne 메서드를 사용하여 item
이 "paper"
와같은 첫 번째 문서를 업데이트합니다.
다음 예시는 inventory
컬렉션에서 update_one
메서드를 사용하여 item
이 "paper"
인 첫 번째 문서를 업데이트합니다.
다음 예시에서는 Collection.updateOne() 을 inventory
컬렉션에서 사용하여 item
이(가) "paper"
와(과) 동일한 첫 번째 문서를 업데이트합니다.
다음 예시에서는 update_one()을 inventory
컬렉션에서 사용하여 item
이 "paper"
와 동일한 첫 번째 문서를 업데이트합니다.
다음 예시에서는 inventory
컬렉션에서 updateOne()
메서드를 사용하여 item
"paper"
과 같은 첫 번째 문서를 업데이트합니다.
다음 예시는 inventory
컬렉션에서 update_one
메서드를 사용하여 item
이 "paper"
인 첫 번째 문서를 업데이트합니다.
다음 예시에서는 update_one()을 inventory
컬렉션에서 사용하여 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
를 참조하세요.
여러 문서 업데이트하기
다음 예시에서는 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
미만인 모든 문서를 업데이트합니다.
다음 예시에서는 inventory
컬렉션에서 com.mongodb.client.MongoCollection.updateMany 메서드를 사용하여 qty
가 50
미만인 모든 문서를 업데이트합니다.
다음 예제는 inventory
컬렉션에서 update_many
메서드를 사용하여 qty
50
보다 작은 모든 문서를 업데이트합니다.
다음 예시에서는 Collection.updateMany()를 사용합니다. inventory
컬렉션에서 qty
가 50
미만인 모든 문서를 업데이트하는 메서드.
다음 예제는 inventory
컬렉션에서 update_many() 메서드를 사용하여 qty
가 50
미만인 모든 문서를 업데이트합니다.
다음 예시에서는 inventory
컬렉션에서 updateMany()
메서드를 사용하여 qty
이(가) 50
보다 작은 모든 문서를 업데이트합니다.
다음 예제는 inventory
컬렉션에서 update_many
메서드를 사용하여 qty
50
보다 작은 모든 문서를 업데이트합니다.
다음 예시는 inventory
컬렉션에서 update_many() 메서드를 사용하여 qty
가 50
미만인 모든 문서를 업데이트합니다.
다음 예제는 inventory
컬렉션에서 updateMany() 메서드를 사용하여 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 배포에 연결하고 이 섹션의 예제를 따라 원하는 방법으로 진행하세요.
_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
필드를 제외하고 교체하려면, replaceOne()의 두 번째 인수로 완전히 새로운 문서를 전달하세요.
문서를 바꿀 때 대체 문서는 필드/값 쌍으로만 구성되어야 합니다. 대체 문서에는 업데이트 연산자 표현식이 포함될 수 없습니다.
교체 문서는 원본 문서와 다른 필드를 가질 수 있습니다. 교체 문서에서 _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에서 문서를 업데이트하려면 다음 단계에 따릅니다.
MongoDB Atlas UI에서 Clusters 프로젝트의 페이지로 이동합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
아직 표시되지 않은 경우 사이드바에서 Clusters를 클릭합니다.
Clusters(클러스터) 페이지가 표시됩니다.
쿼리 필터 문서를 지정합니다.
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 기준)에 있는 문서를 반환합니다.
Edit a document.
쿼리 결과에 표시된 문서를 수정하려면 문서 위에 마우스를 올린 후 연필 아이콘을 클릭합니다. 문서 편집기에서 다음을 실행할 수 있습니다.
새 필드를 추가합니다.
기존 필드를 삭제합니다.
필드의 이름, 값 또는 유형을 편집합니다.
특정 변경 사항을 되돌립니다.
자세한 지침은 문서 생성, 보기, 업데이트 및 삭제를 참조하세요.
행동
원자성
MongoDB의 모든 쓰기 작업은 단일 문서 수준에서 원자적으로 이루어집니다. MongoDB 및 원자성에 대한 자세한 내용은 원자성 및 트랜잭션에서 확인 가능합니다.
_id
필드
설정한 후에는 _id
필드 값을 업데이트할 수 없으며 기존 문서를 _id
필드 값이 문서로 대체할 수 없습니다.
필드 순서
쓰기 조작의 경우 MongoDB는 다음과 같은 경우를 제외하고 문서 필드의 순서를 유지합니다.
_id
필드는 항상 문서에서 첫 번째 필드입니다.renaming
개의 필드 이름이 포함된 업데이트는 문서에서 필드의 순서를 변경할 수 있습니다.
업서트 옵션
updateOne()
, updateMany()
또는 replaceOne()
에 upsert : true
가 포함되어 있고 동시에 지정된 필터와 일치하는 문서가 없는 경우, 새 문서를 만들어 삽입하는 작업을 수행합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
업서트 옵션은 MongoDB Compass를 통해 사용할 수 없습니다.
UpdateOne(), UpdateMany() 또는 ReplaceOne() 에 IsUpsert
옵션이 true
로 설정된 UpdateOptions 인수 인스턴스가 포함되어 있고 지정된 필터와 일치하는 문서가 없는 경우 작업은 새 문서를 만들고 삽입합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
Collection.UpdateOne에 업서트 옵션이 참으로 설정되어 있고 그리고 지정한 것과 일치하는 문서가 없는 경우 필터를 적용하면 작업이 새 문서를 만들어 삽입합니다. 일치하는 문서가 있는 경우 작업은 일치하는 문서를 수정하거나 대체합니다.
생성된 새 문서에 대한 자세한 내용은 해당 메서드에 대한 개별 레퍼런스 페이지를 참조하세요.
업데이트 및 교체 메서드에 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에서 쓰기 작업에 요청한 승인 수준을 지정할 수 있습니다. 자세한 내용은 쓰기 고려를 참조하세요.