문서 교체하기
.replaceOne() 컬렉션 을 사용하여 단일 문서 를 바꿀 수 있습니다. 메서드. replaceOne()
는 쿼리 문서 와 대체 문서 를 허용합니다. 쿼리 가 컬렉션 의 문서 와 일치하면 쿼리 와 일치하는 첫 번째 문서 를 제공된 대체 문서 로 대체합니다. 이 작업은 원본 문서 의 모든 필드와 값을 제거하고 대체 문서 의 필드와 값으로 바꿉니다. 대체 문서 에서 _id
에 대한 새 값을 명시적으로 지정하지 않는 한 _id
필드 값은 동일하게 유지됩니다.
선택적 options
매개 변수를 사용해 upsert
같은 추가 옵션을 지정할 수 있습니다. upsert
옵션 필드를 true
로 설정하면 메서드는 쿼리와 일치하는 문서가 없을 때 새 문서를 삽입합니다.
실행 중에 오류가 발생하면 replaceOne()
메서드에서 예외가 발생합니다. 예를 들어, 고유 인덱스 규칙을 위반하는 값을 지정하면 replaceOne()
duplicate key error
이(가) 발생합니다.
참고
업데이트 후 애플리케이션에 문서가 필요한 경우 collection.findOneAndReplace() 메서드 를 replaceOne()
와 유사한 인터페이스를 가진 메서드입니다. 일치하는 원본 문서 또는 대체 문서를 반환하도록 findOneAndReplace()
를 구성할 수 있습니다.
예시
참고
이 예시를 사용하여 MongoDB 인스턴스에 연결하고 샘플 데이터가 포함된 데이터베이스와 상호 작용할 수 있습니다. MongoDB 인스턴스에 연결하고 샘플 데이터 세트를 로드하는 방법에 대해 자세히 알아보려면 사용 예제 가이드를 참조하세요.
1 import { MongoClient } from "mongodb"; 2 3 // Replace the uri string with your MongoDB deployment's connection string. 4 const uri = "<connection string uri>"; 5 6 const client = new MongoClient(uri); 7 8 async 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 } 32 run().catch(console.dir);
1 import { MongoClient } from "mongodb"; 2 3 // Replace the uri string with your MongoDB deployment's connection string. 4 const uri = "<connection string uri>"; 5 6 const client = new MongoClient(uri); 7 8 interface Movie { 9 title: string; 10 } 11 12 async 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 } 28 run().catch(console.dir);
앞의 예시를 실행하면 다음과 같은 출력이 표시됩니다.
Modified 1 document(s)