문서 업데이트
컬렉션 .updateOne() 을 사용하여 단일 문서 를 업데이트 할 수 있습니다. 메서드. updateOne()
메서드는 필터하다 문서 와 업데이트 문서 를 허용합니다. 쿼리 가 컬렉션 의 문서와 일치하는 경우 메서드는 업데이트 문서 의 업데이트 내용을 해당 문서의 필드 및 값에 적용합니다. 업데이트 문서 에는 일치 항목에 대한 변경 사항을 메서드에 지시하는 업데이트 연산자 가 포함되어 있습니다.
updateOne()
메서드의 두 번째 매개변수로 전달된 options
객체를 사용하여 추가 쿼리 옵션을 지정할 수 있습니다. 필터와 일치하는 문서가 없는 경우 새 문서를 만들려면 upsert
옵션을 true
로 설정합니다. 자세한 내용은 updateOne() API 설명서를 참조하세요.
updateOne()
실행 중에 오류가 발생하면 예외가 발현합니다. 변경할 수 없는 필드 _id
에 대한 업데이트 문서에 값을 지정하면 메서드에서 예외가 발생합니다. 업데이트 문서에 고유 인덱스 규칙을 위반하는 값이 포함된 경우 메서드는 duplicate
key error
예외를 발생시킵니다.
참고
업데이트 후 애플리케이션에 문서가 필요한 경우 updateOne()
과 인터페이스가 비슷하지만 원본 또는 업데이트된 문서도 반환하는 collection.findOneAndUpdate(). 메서드를 사용하는 것이 좋습니다.
예시
다음 예시에서는 문서 필드의 업데이트 값을 지정하는 $set
업데이트 연산자를 사용합니다. 업데이트 연산자에 대한 자세한 내용은 MongoDB 업데이트 연산자 참조 문서를 참조하세요.
참고
이 예시를 사용하여 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 const database = client.db("sample_mflix"); 11 const movies = database.collection("movies"); 12 13 // create a filter for a movie to update 14 const filter = { title: "Random Harvest" }; 15 16 // this option instructs the method to create a document if no documents match the filter 17 const options = { upsert: true }; 18 19 // create a document that sets the plot of the movie 20 const updateDoc = { 21 $set: { 22 plot: `A harvest of random numbers, such as: ${Math.random()}` 23 }, 24 }; 25 26 const result = await movies.updateOne(filter, updateDoc, options); 27 console.log( 28 `${result.matchedCount} document(s) matched the filter, updated ${result.modifiedCount} document(s)`, 29 ); 30 } finally { 31 await client.close(); 32 } 33 } 34 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 plot: string; 10 title: string; 11 } 12 13 async function run() { 14 try { 15 const database = client.db("sample_mflix"); 16 const movies = database.collection<Movie>("movies"); 17 18 const result = await movies.updateOne( 19 { title: "Random Harvest" }, 20 { 21 $set: { 22 plot: `A harvest of random numbers, such as: ${Math.random()}`, 23 }, 24 }, 25 { upsert: true } 26 ); 27 console.log( 28 `${result.matchedCount} document(s) matched the filter, updated ${result.modifiedCount} document(s)` 29 ); 30 } finally { 31 await client.close(); 32 } 33 } 34 run().catch(console.dir);
위의 예시를 실행하면 다음 출력이 표시됩니다.
1 document(s) matched the filter, updated 1 document(s)