AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

UpdateMany

이 가이드 에서는 MongoDB .NET/ C# 드라이버 사용하여 여러 문서의 값을 업데이트 방법을 학습 수 있습니다.

.NET/ C# 드라이버 다음 메서드를 제공하여 값을 업데이트 .

  • UpdateMany(): 여러 문서에서 하나 이상의 필드를 업데이트합니다.

  • UpdateManyAsync(): UpdateMany()의 비동기 버전입니다.

다음 섹션에서는 이러한 메서드에 대해 자세히 설명합니다.

참고

메서드 오버로드

이 페이지의 많은 메서드에는 여러 개의 오버로드가 있습니다. 이 가이드 의 예제에서는 각 메서드에 대한 정의를 하나만 보여줍니다. 사용 가능한 오버로드에 대한 자세한 내용은 API 설명서를 참조하세요.

이 가이드의 예에서는 sample_restaurants 데이터베이스의 restaurants 컬렉션을 사용합니다. 이 컬렉션의 문서는 다음 Restaurant, Address, GradeEntry 클래스를 모델로 사용합니다.

public class Restaurant
{
public ObjectId Id { get; set; }
public string Name { get; set; }
[BsonElement("restaurant_id")]
public string RestaurantId { get; set; }
public string Cuisine { get; set; }
public Address Address { get; set; }
public string Borough { get; set; }
public List<GradeEntry> Grades { get; set; }
}
public class Address
{
public string Building { get; set; }
[BsonElement("coord")]
public double[] Coordinates { get; set; }
public string Street { get; set; }
[BsonElement("zipcode")]
public string ZipCode { get; set; }
}
public class GradeEntry
{
public DateTime Date { get; set; }
public string Grade { get; set; }
public float? Score { get; set; }
}

참고

restaurants 컬렉션 의 문서는 대소문자 명명 규칙을 사용합니다. 이 가이드 의 예제에서는 ConventionPack 를 사용하여 컬렉션 의 필드를 파스칼식 대/소문자로 역직렬화하고 Restaurant 클래스의 속성에 매핑합니다.

사용자 지정 직렬화에 대해 자세히 알아보려면 사용자 지정 직렬화를참조하세요.

이 컬렉션 Atlas 에서 제공하는 샘플 데이터 세트에서 가져온 것입니다. 무료 MongoDB cluster 생성하고 이 샘플 데이터를 로드하는 방법을 학습 .NET/ C# 드라이버 시작하기 를 참조하세요.

UpdateMany()UpdateManyAsync() 메서드는 다음 매개변수를 허용합니다.

Parameter
설명

filter

업데이트 할 문서를 지정하는 FilterDefinition 클래스의 인스턴스 . 쿼리 필터하다 만드는 방법을 학습 쿼리 필터 만들기를 참조하세요.

데이터 유형: FilterDefinition

update

UpdateDefinition 클래스의 인스턴스 . 이 객체 업데이트 작업의 종류, 업데이트 할 필드, 각 필드 의 새 값을 지정합니다. 객체 를 만드는 방법을 학습 UpdateDefinition 많은 문서의 필드 업데이트많은 문서의 배열 업데이트를 참조하세요.

데이터 유형: UpdateDefinition<TDocument>

options

선택 사항. 업데이트 작업에 대한 구성을 지정하는 UpdateOptions 클래스의 인스턴스 . 기본값 은 null입니다. 사용 가능한 옵션 목록은 구성 옵션을 참조하세요.

데이터 유형: UpdateOptions

cancellationToken

선택 사항. 작업을 취소하는 데 사용할 수 있는 토큰입니다.

데이터 유형: CancellationToken

UpdateMany()UpdateManyAsync() 메서드는 각각 하나의 UpdateDefinition 객체 만 허용합니다. 다음 섹션에서는 단일 메서드 호출로 여러 값을 업데이트 방법을 설명합니다.

Builders.Update.Combine() 메서드를 사용하면 여러 UpdateDefinition 객체를 결합할 수 있습니다. 이 메서드는 다음 매개변수를 허용합니다.

Parameter
설명

updates

결합할 업데이트 정의의 배열 .

데이터 유형: UpdateDefinition<TDocument>[]

Combine() 메서드는 여러 업데이트 작업을 정의하는 단일 UpdateDefinition 객체 반환합니다.

다음 코드 예시 메서드를 사용하여 Combine() $ 설정하다 작업과 $unset 작업을 결합합니다.

var filter = Builders<Restaurant>.Filter
.Eq("cuisine", "Pizza");
var combinedUpdate = Builders<Restaurant>.Update.Combine(
Builders<Restaurant>.Update.Set("cuisine", "French"),
Builders<Restaurant>.Update.Unset("borough")
);
_restaurantsCollection.UpdateMany(filter, combinedUpdate);
var filter = Builders<Restaurant>.Filter
.Eq("cuisine", "Pizza");
var combinedUpdate = Builders<Restaurant>.Update.Combine(
Builders<Restaurant>.Update.Set("cuisine", "French"),
Builders<Restaurant>.Update.Unset("borough")
);
await _restaurantsCollection.UpdateManyAsync(filter, combinedUpdate);

일련의 업데이트 작업을 단일 집계 파이프라인으로 결합할 수 있습니다.

업데이트 파이프라인 만들려면 Builders.Update.Pipeline() 메서드를 호출합니다. 이 메서드는 다음 매개변수를 허용합니다.

Parameter
설명

pipeline

업데이트 파이프라인 나타내는 PipelineDefinition 인스턴스 입니다. PipelineDefinition 객체 생성하려면 수행하려는 각 업데이트 작업에 대한 BSON 문서 생성한 다음 이러한 문서를 PipelineDefinition.Create() 메서드에 전달합니다.

데이터 유형: PipelineDefinition<TDocument, TDocument>

Pipeline() 메서드는 여러 집계 단계를 정의하는 단일 UpdateDefinition 객체 반환합니다.

다음 코드 예시 메서드를 사용하여 Pipeline() $ 설정하다 작업과 $unset 작업을 결합합니다.

var filter = Builders<Restaurant>.Filter
.Eq("cuisine", "Pizza");
var updatePipeline = Builders<Restaurant>.Update.Pipeline(
PipelineDefinition<Restaurant, Restaurant>.Create(
new BsonDocument("$set", new BsonDocument("cuisine", "French")),
new BsonDocument("$unset", "borough")
)
);
_restaurantsCollection.UpdateMany(filter, updatePipeline);
var filter = Builders<Restaurant>.Filter
.Eq("cuisine", "Pizza");
var updatePipeline = Builders<Restaurant>.Update.Pipeline(
PipelineDefinition<Restaurant, Restaurant>.Create(
new BsonDocument("$set", new BsonDocument("cuisine", "French")),
new BsonDocument("$unset", "borough")
)
);
await _restaurantsCollection.UpdateManyAsync(filter, updatePipeline);

참고

지원되지 않는 작업

업데이트 파이프라인은 모든 업데이트 작업을 지원 하지는 않지만 다른 업데이트 정의에서는 볼 수 없는 특정 집계 단계를 지원 합니다. 파이프라인에서 지원하는 업데이트 작업 목록은 MongoDB Server 매뉴얼에서 집계 파이프라인을 사용한 업데이트를 참조하세요.

UpdateMany()UpdateManyAsync() 메서드는 선택적으로 UpdateOptions 객체 매개 변수로 허용합니다. 이 인수를 사용하여 업데이트 작업을 구성할 수 있습니다.

UpdateOptions 클래스에는 다음과 같은 속성이 포함되어 있습니다.

속성
설명

ArrayFilters

배열 필드 에 대한 업데이트 작업을 위해 수정할 배열 요소를 지정합니다. 자세한 내용은 MongoDB Server 매뉴얼을 참조하세요.

데이터 유형: IEnumerable<ArrayFilterDefinition>

BypassDocumentValidation

업데이트 작업에서 문서 유효성 검사 우회할지 여부를 지정합니다. 이를 통해 스키마 유효성 검사 요구 사항을 충족하지 않는 문서(있는 경우)를 업데이트 할 수 있습니다. 스키마 유효성 검사 에 대한 자세한 내용은 MongoDB Server 매뉴얼을 참조하세요.

데이터 유형: bool?

Collation

결과를 정렬할 때 사용할 언어 데이터 정렬의 종류를 지정합니다. 자세한 내용은 이 페이지의 데이터 정렬 섹션을 참조하세요.

데이터 유형: 데이터 정렬

Comment

작업에 대해 사용자가 제공한 설명을 가져오거나 설정합니다. 자세한 내용은 MongoDB Server 매뉴얼을 참조하세요.

데이터 유형: BsonValue

Hint

문서를 스캔하는 데 사용할 인덱스 를 가져오거나 설정합니다. 자세한 내용은 MongoDB Server 매뉴얼을 참조하세요.

데이터 유형: BsonValue

IsUpsert

쿼리 필터하다 와 일치하는 문서가 없는 경우 업데이트 작업에서 업서트 작업을 수행할지 여부를 지정합니다. 자세한 내용은 MongoDB Server 매뉴얼을 참조하세요.

데이터 유형: bool

Sort

업데이트 작업은 지정된 정렬 순서의 첫 번째 문서 업데이트하므로 쿼리 여러 문서를 선택하는 경우 작업을 업데이트할 문서 를 결정합니다. 이 옵션을 설정하다 하려면 다음 코드와 같이 데이터를 모델링하는 일반 유형을 사용하는 UpdateOptions<T> 인스턴스 인스턴스화해야 합니다.

var options = new UpdateOptions<Restaurant>
{
Sort = Builders<Restaurant>.Sort.Ascending(r => r.Name)
};

데이터 유형: SortDefinition<T>

Let

let 문서 가져오거나 설정합니다. 자세한 내용은 MongoDB Server 매뉴얼을 참조하세요.

데이터 유형: BsonDocument

작업에 대한 데이터 정렬을 구성하려면 데이터 정렬 클래스의 인스턴스를 만듭니다.

다음 표에서는 Collation 생성자가 허용하는 매개변수에 대해 설명합니다. 또한 각 설정의 값을 읽는 데 사용할 수 있는 해당 클래스 속성 도 나열되어 있습니다.

Parameter
설명
클래스 속성

locale

유니코드용 국제 구성 요소(ICU) 국가 및 언어 설정 및 언어 설정을 지정합니다. 지원되는 국가 및 언어 설정 목록은 MongoDB Server

Collation.Simple Collation locale "simple"매뉴얼의
데이터 정렬 국가 및 언어 설정 및 기본 매개변수를 참조하세요. 단순 이진 비교를 사용하려면 정적 속성 사용하여 가 로 설정하다 객체 반환합니다. 데이터 유형: string

Locale

caseLevel

(선택 사항) 대소문자 비교를 포함할지 여부를 지정합니다.

이 인수가 인 경우 true 드라이버의 동작은 인수의 값에 따라 달라집니다.strength

- 가 인 경우 strength CollationStrength.Primary운전자 기본 문자와 대소문자를 비교합니다.
- 가 strength CollationStrength.Secondary인 경우 운전자 기본 문자, 분음 부호, 기타 세컨더리 차이점 및 대소문자를 비교합니다.
- strength 이 다른 값인 경우 이 인수는 무시됩니다.

이 인수가 인 false 경우 운전자 강도 수준 Primary 또는 에서 대소문자 비교를 포함하지 Secondary 않습니다.

데이터 유형: boolean
기본값: false

CaseLevel

caseFirst

(선택 사항) 3차 수준 비교 시 대소문자 차이의 정렬 순서를 지정합니다.

데이터 유형: CollationCaseFirst
기본값: CollationCaseFirst.Off

CaseFirst

strength

(선택 사항) ICU 문서에 정의된

대로 수행할 비교 수준을 지정합니다. 데이터 유형: CollationStrength
기본값: CollationStrength.Tertiary

Strength

numericOrdering

(선택 사항) 운전자 숫자 문자열을 숫자로 비교할지 여부를 지정합니다.

이 인수가 true 이면 운전자 숫자 문자열을 숫자로 비교합니다. 예시 를 들어 "10문자열과 "2" 문자열을 비교할 때 운전자 값을 10 및 로 2 처리하고 가 10 더 큰

것을 찾습니다. 이 인수가 false 이거나 제외되면 운전자 숫자 문자열을 문자열로 비교합니다. 예시 를 들어10문자열과 '2' 문자열을 비교할 때 운전자 한 번에 한 문자씩 비교합니다. '1'는 ' '보다 작으므로2운전자 '10'이 ' '보다 작은 것을2찾습니다.

자세한 내용은 MongoDB Server 매뉴얼에서

데이터 정렬 제한을 참조하세요. 데이터 유형: boolean
기본값: false

NumericOrdering

alternate

(선택 사항) 운전자 비교를 위해 공백과 문장 부호를 기본 문자로 간주할지 여부를 지정합니다.

데이터 유형: CollationAlternate 기본값:(공백과
CollationAlternate.NonIgnorable 문장 부호는 기본 문자로 간주됨)

Alternate

maxVariable

(선택 사항) 인수가 일 때 운전자 무시할 수 있는 것으로 간주하는 alternate CollationAlternate.Shifted문자를 지정합니다.

데이터 유형: CollationMaxVariable 기본값:(
CollationMaxVariable.Punctuation 운전자 구두점 및 공백 무시)

MaxVariable

normalization

(선택 사항) 운전자 필요에 따라 텍스트를 정규화할지 여부를 지정합니다.

대부분의 텍스트에는 정규화가 필요하지 않습니다. 정규화에 대한 자세한 내용은 ICU 문서를 참조하세요.

데이터 유형: 기본값: boolean
false

Normalization

backwards

(선택 사항) 분음 부호가 포함된 문자열을 문자열 뒤쪽에서 앞쪽으로 정렬할지 여부를 지정합니다.

데이터 유형: boolean
기본값: false

Backwards

데이터 정렬에 대한 자세한 내용은 MongoDB Server 매뉴얼의 데이터 정렬 페이지를 참조하세요.

UpdateMany() 메서드는 UpdateResult을 반환하고, UpdateManyAsync() 메서드는 Task<UpdateResult> 객체 반환합니다. UpdateResult 클래스에는 다음과 같은 속성이 포함되어 있습니다.

속성
설명

IsAcknowledged

MongoDB에서 업데이트 작업을 승인했는지 여부를 나타냅니다.

데이터 유형: bool

IsModifiedCountAvailable

UpdateResult에서 업데이트 레코드 수를 읽을 수 있는지 여부를 나타냅니다.

데이터 유형: bool

MatchedCount

업데이트 여부에 관계없이 쿼리 필터하다 와 일치하는 문서 수입니다.

데이터 유형: long

ModifiedCount

업데이트 작업으로 수정된 문서 수입니다.

데이터 유형: long

UpsertedId

드라이버가 업서트를 수행한 경우 데이터베이스에 업서트된 문서의 ID입니다.

데이터 유형: BsonValue

이 페이지에는 UpdateManyAsync() 메서드를 사용하여 데이터를 수정하는 방법을 보여주는 짧은 인터랙티브 실습이 포함되어 있습니다. MongoDB 또는 코드 편집기를 설치하지 않고도 브라우저 창에서 직접 이 실습을 완료할 수 있습니다.

실습을 시작하려면 페이지 상단에 있는 Open Interactive Tutorial 버튼을 클릭하세요. 실습을 전체 화면 형식으로 확장하려면 랩 창의 오른쪽 상단 모서리에 있는 전체 화면 버튼()을 클릭합니다.

업데이트 작업의 실행 가능한 예제는 다음 사용 예제를 참조하세요.

UpdateOne()

쿼리 필터 만들기에 대해 자세히 학습 쿼리 필터 만들기 가이드 참조하세요.

이 가이드 에 설명된 메서드 또는 유형에 대한 자세한 내용은 다음 API 문서를 참조하세요.