Docs Menu
Docs Home
/ / /
Go Driver
/ /

ドキュメントの置き換え

コレクション内のドキュメントを置き換えるには、 ReplaceOne()メソッドを使用します。

Tip

この例の実行方法については、「 使用例」をお読みください。

この例では、 restaurants コレクション内のドキュメントのモデルとして次の Restaurant 構造体を使用します。

type Restaurant struct {
Name string
RestaurantId string `bson:"restaurant_id,omitempty"`
Cuisine string `bson:"cuisine,omitempty"`
Address interface{} `bson:"address,omitempty"`
Borough string `bson:"borough,omitempty"`
Grades []interface{} `bson:"grades,omitempty"`
}

omitempty 構造体タグが空のままの場合、挿入されたドキュメントの対応フィールドが省略されます。

この例では、 restaurantsコレクションに対して次のアクションを実行しています。

  • nameが「Madname Voice」であるドキュメントに一致します

  • 一致したドキュメントを新しいドキュメントに置き換えます

coll := client.Database("sample_restaurants").Collection("restaurants")
filter := bson.D{{"name", "Madame Vo"}}
// Creates a new document containing "Name" and "Cuisine" fields
replacement := Restaurant{Name: "Monsieur Vo", Cuisine: "Asian Fusion"}
// Replaces the first document that matches the filter with a new document
result, err := coll.ReplaceOne(context.TODO(), filter, replacement)
if err != nil {
panic(err)
}

が完全に実行可能な例 を表示

完全な例を実行すると、 restaurantsコレクションに次の置換されたドキュメントが見つかります。

{
"_id" : ObjectId("..."),
"name" : "Monsieur Vo",
"cuisine" : "Asian Fusion"
}

ドキュメントの検索方法の例については、 「 ドキュメントを検索する 」の使用例を参照してください。

ドキュメントの置き換え、クエリ フィルターの指定、潜在的なエラーの処理の詳細については、「ドキュメントを変更する」を参照してください。

ReplaceOne()

戻る

複数のドキュメントの更新