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

문서 업데이트

collection.updateOne() 를 사용하여 단일 문서를 업데이트할 수 있습니다. 메서드를 사용하여 컬렉션의 여러 문서를 한 번에 삭제할 수 있습니다. updateOne() 메서드는 필터 문서와 업데이트 문서를 허용합니다. 쿼리가 컬렉션 내의 문서와 일치하는 경우 이 메서드는 업데이트 문서의 업데이트 내용을 해당 문서의 필드 및 값에 적용합니다. 업데이트 문서에는 매치 에 적용할 변경 사항을 메서드에 지시하는 업데이트 연산자 가 포함되어 있습니다.

updateOne() 메서드의 두 번째 매개 변수로 전달된 options 객체를 사용하여 더 많은 쿼리 옵션을 지정할 수 있습니다. 필터와 일치하는 문서가 없는 경우 upsert 옵션을 true로 설정하여 새 문서를 만듭니다. 자세한 내용은 updateOne() API 문서를 참조하세요.

updateOne() 실행 중에 오류가 발생하면 예외가 발현합니다. 변경할 수 없는 필드 _id에 대한 업데이트 문서에 값을 지정하면 메서드에서 예외가 발생합니다. 업데이트 문서에 고유 인덱스 규칙을 위반하는 값이 포함된 경우 메서드는 duplicate key error 예외를 발생시킵니다.

참고

업데이트 후 애플리케이션에 문서가 필요한 경우 updateOne()과 인터페이스가 비슷하지만 원본 또는 업데이트된 문서도 반환하는 collection.findOneAndUpdate(). 메서드를 사용하는 것이 좋습니다.

다음 예시에서는 문서 필드의 업데이트 값을 지정하는 $set 업데이트 연산자를 사용합니다. 업데이트 연산자에 대한 자세한 내용은 MongoDB 업데이트 연산자 참조 문서를 참조하세요.

참고

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

1// Update a document
2
3import { MongoClient } from "mongodb";
4
5// Replace the uri string with your MongoDB deployment's connection string
6const uri = "<connection string uri>";
7
8const client = new MongoClient(uri);
9
10async function run() {
11 try {
12 const database = client.db("sample_mflix");
13 const movies = database.collection("movies");
14
15 // Create a filter for movies with the title "Random Harvest"
16 const filter = { title: "Random Harvest" };
17
18 /* Set the upsert option to insert a document if no documents match
19 the filter */
20 const options = { upsert: true };
21
22 // Specify the update to set a value for the plot field
23 const updateDoc = {
24 $set: {
25 plot: `A harvest of random numbers, such as: ${Math.random()}`
26 },
27 };
28
29 // Update the first document that matches the filter
30 const result = await movies.updateOne(filter, updateDoc, options);
31
32 // Print the number of matching and modified documents
33 console.log(
34 `${result.matchedCount} document(s) matched the filter, updated ${result.modifiedCount} document(s)`,
35 );
36 } finally {
37 // Close the connection after the operation completes
38 await client.close();
39 }
40}
41// Run the program and print any thrown errors
42run().catch(console.dir);
1// Update a document
2
3import { MongoClient } from "mongodb";
4
5// Replace the uri string with your MongoDB deployment's connection string
6const uri = "<connection string uri>";
7
8const client = new MongoClient(uri);
9
10// Define the Movie interface
11interface Movie {
12 plot: string;
13 title: string;
14}
15
16async function run() {
17 try {
18 const database = client.db("sample_mflix");
19 const movies = database.collection<Movie>("movies");
20
21 /* Update a document that has the title "Random Harvest" to have a
22 plot field with the specified value */
23 const result = await movies.updateOne(
24 { title: "Random Harvest" },
25 {
26 $set: {
27 plot: `A harvest of random numbers, such as: ${Math.random()}`,
28 },
29 },
30 /* Set the upsert option to insert a document if no documents
31 match the filter */
32 { upsert: true }
33 );
34
35 // Print the number of matching and modified documents
36 console.log(
37 `${result.matchedCount} document(s) matched the filter, updated ${result.modifiedCount} document(s)`
38 );
39 } finally {
40 // Close the connection after the operation completes
41 await client.close();
42 }
43}
44// Run the program and print any thrown errors
45run().catch(console.dir);

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

1 document(s) matched the filter, updated 1 document(s)

돌아가기

업데이트 & 작업 바꾸기