Docs Menu
Docs Home
/ / /
Node.js 드라이버
/ /

문서 교체하기

컬렉션 .replaceOne() 를 사용하여 단일 문서 를 바꿀 수 있습니다. 메서드. replaceOne() 은 쿼리 문서 와 대체 문서 를 허용합니다. 쿼리 가 컬렉션 의 문서 와 일치하면 쿼리 와 일치하는 첫 번째 문서 를 제공된 대체 문서 로 대체합니다. 이 작업은 원본 문서 의 모든 필드와 값을 제거하고 대체 문서 의 필드와 값으로 바꿉니다. 대체 문서 에서 _id 에 대한 새 값을 명시적으로 지정하지 않는 한 _id 필드 값은 동일하게 유지됩니다.

선택적 options 매개 변수를 사용하여 upsert 등의 추가 옵션을 지정할 수 있습니다. upsert 옵션 필드를 true(으)로 설정하면 메서드는 쿼리와 일치하는 문서가 없을 때 새 문서를 삽입합니다.

실행 중에 오류가 발생하면 replaceOne() 메서드에서 예외가 발생합니다. 예를 들어, 고유 인덱스 규칙을 위반하는 값을 지정하면 replaceOne() duplicate key error이(가) 발생합니다.

참고

업데이트 후 애플리케이션에 문서가 필요한 경우 collection.findOneAndReplace() 메서드 를 replaceOne() 와 유사한 인터페이스를 가진 메서드입니다. 일치하는 원본 문서 또는 대체 문서를 반환하도록 findOneAndReplace() 를 구성할 수 있습니다.

참고

이 예시를 사용하여 MongoDB 인스턴스에 연결하고 샘플 데이터가 포함된 데이터베이스와 상호 작용할 수 있습니다. MongoDB 인스턴스에 연결하고 샘플 데이터 세트를 로드하는 방법에 대해 자세히 알아보려면 사용 예제 가이드를 참조하세요.

1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8async function run() {
9 try {
10
11 // Get the database and collection on which to run the operation
12 const database = client.db("sample_mflix");
13 const movies = database.collection("movies");
14
15 // Create a query for documents where the title contains "The Cat from"
16 const query = { title: { $regex: "The Cat from" } };
17
18 // Create the document that will replace the existing document
19 const replacement = {
20 title: `The Cat from Sector ${Math.floor(Math.random() * 1000) + 1}`,
21 };
22
23 // Execute the replace operation
24 const result = await movies.replaceOne(query, replacement);
25
26 // Print the result
27 console.log(`Modified ${result.modifiedCount} document(s)`);
28 } finally {
29 await client.close();
30 }
31}
32run().catch(console.dir);
1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8interface Movie {
9 title: string;
10}
11
12async function run() {
13 try {
14 const database = client.db("sample_mflix");
15 const movies = database.collection<Movie>("movies");
16
17 const result = await movies.replaceOne(
18 { title: { $regex: "The Cat from" } },
19 {
20 title: `The Cat from Sector ${Math.floor(Math.random() * 1000) + 1}`,
21 }
22 );
23 console.log(`Modified ${result.modifiedCount} document(s)`);
24 } finally {
25 await client.close();
26 }
27}
28run().catch(console.dir);

앞의 예시를 실행하면 다음과 같은 출력이 표시됩니다.

Modified 1 document(s)

돌아가기

여러 문서 업데이트하기