Docs Menu
Docs Home
/ / /
C#/.NET
/ / /

ドキュメントの置換

項目一覧

  • Overview
  • サンプル データ
  • 1 つのドキュメントの置換
  • 置換操作をカスタマイズする
  • 戻り値
  • API ドキュメント

注意

メソッドのオーバーロード

このページのメソッドの多くには、複数のオーバーロードがあります。 The examples in this ガイド show only one definition of each method. For more information about the available overloads, see the API documentation.

このガイドの例では、 sample_restaurantsデータベースのrestaurantsコレクションを使用します。 このコレクションのドキュメントでは、次のRestaurantAddressGradeEntryクラスをモデルとして使用します。

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 クラスターを無料で作成して、このサンプル データをロードする方法については、クイック スタートを参照してください。

To replace a ドキュメント in a コレクション, call the ReplaceOne() or ReplaceOneAsync() method.これらのメソッドは次のパラメーターを受け入れます。

Parameter
説明

filter

replacement

データ型: TDocument

options

任意。 An インスタンス of theReplaceOptions クラス that specifies the configuration for the replace 操作. The デフォルト value is.null

データ型: ReplaceOptions

cancellationToken

任意。操作をキャンセルするために使用できるトークン。

データ型 : CancelToken

The following code 例 demonstrates how to perform a replace 操作.このコードでは、次の手順が実行されます。

SynchronousAsynchronous対応するコードを表示するには、 タブまたは タブを選択します。

// Creates a filter for all restaurant documents that have a "cuisine" value of "Pizza"
var filter = Builders<Restaurant>.Filter
.Eq(r => r.Cuisine, "Pizza");
// Generates a new restaurant document
Restaurant newPizzaRestaurant = new()
{
Name = "Mongo's Pizza",
Cuisine = "Pizza",
Address = new Address()
{
Street = "Pizza St",
ZipCode = "10003"
},
Borough = "Manhattan",
};
// Replaces the existing restaurant document with the new document
return _restaurantsCollection.ReplaceOne(filter, newPizzaRestaurant);
// Creates a filter for all restaurant documents that have a "cuisine" value of "Pizza"
var filter = Builders<Restaurant>.Filter
.Eq(r => r.Cuisine, "Pizza");
// Generates a new restaurant document
Restaurant newPizzaRestaurant = new()
{
Name = "Mongo's Pizza",
Cuisine = "Pizza",
Address = new Address()
{
Street = "Pizza St",
ZipCode = "10003"
},
Borough = "Manhattan",
};
// Asynchronously replaces the existing restaurant document with the new document
return await _restaurantsCollection.ReplaceOneAsync(filter, newPizzaRestaurant);

重要

_idフィールドの値は不変です。 置き換えドキュメントで_idフィールドに値が指定される場合は、既存のドキュメントの_id値と一致する必要があります。

プロパティ
説明

BypassDocumentValidation

データ型: bool?

Collation

データ型: 照合

Comment

データ型: BsonValue

Hint

データ型: BsonValue

IsUpsert

データ型: bool

Let

データ型: BsonDocument

// Creates a filter for all restaurant documents that have a "cuisine" value of "Pizza"
var filter = Builders<Restaurant>.Filter
.Eq(r => r.Cuisine, "Pizza");
// Generates a new restaurant document
Restaurant newPizzaRestaurant = new()
{
Name = "Mongo's Pizza",
Cuisine = "Pizza",
Address = new Address()
{
Street = "Pizza St",
ZipCode = "10003"
},
Borough = "Manhattan",
};
var options = new ReplaceOptions
{
BypassDocumentValidation = true
};
// Replaces the existing restaurant document with the new document
return _restaurantsCollection.ReplaceOne(filter, newPizzaRestaurant, options);
// Creates a filter for all restaurant documents that have a "cuisine" value of "Pizza"
var filter = Builders<Restaurant>.Filter
.Eq(r => r.Cuisine, "Pizza");
// Generates a new restaurant document
Restaurant newPizzaRestaurant = new()
{
Name = "Mongo's Pizza",
Cuisine = "Pizza",
Address = new Address()
{
Street = "Pizza St",
ZipCode = "10003"
},
Borough = "Manhattan",
};
var options = new ReplaceOptions
{
BypassDocumentValidation = true
};
// Asynchronously replaces the existing restaurant document with the new document
return await _restaurantsCollection.ReplaceOneAsync(filter, newPizzaRestaurant, options);

プロパティ
説明

IsAcknowledged

置き換え操作が MongoDB によって確認されたかどうかを示します。

データ型: bool

IsModifiedCountAvailable

ReplaceOneResultで置換されたレコードの数を読み取れるかどうかを示します。

データ型: bool

MatchedCount

置き換えられたかどうかにかかわらず、クエリフィルターに一致したドキュメントの数。

データ型: long

ModifiedCount

置換操作によって置き換えられたドキュメントの数。

データ型: long

UpsertedId

ドライバーがアップサートを実行した場合、データベースでアップサートされたドキュメントのID。

データ型: BsonValue

戻る

配列