Docs Menu

Docs HomeGo

返すフィールドを指定する

項目一覧

  • Overview
  • サンプル データ
  • プロジェクション
  • フィールドを除外する
  • フィールドを含める
  • 集計
  • 詳細情報
  • API ドキュメント

このガイドでは、読み取り操作からドキュメントで返されるフィールドを指定する方法を学習できます。

このガイドの例を実行するには、次のスニペットを使用して、これらのドキュメントを tea.ratingsコレクションにロードします。

coll := client.Database("tea").Collection("ratings")
docs := []interface{}{
bson.D{{"type", "Masala"}, {"rating", 10}},
bson.D{{"type", "Assam"}, {"rating", 5}},
bson.D{{"type", "Oolong"}, {"rating", 7}},
bson.D{{"type", "Earl Grey"}, {"rating", 8}},
bson.D{{"type", "English Breakfast"}, {"rating", 5}},
}
result, err := coll.InsertMany(context.TODO(), docs)
if err != nil {
panic(err)
}
fmt.Printf("Number of documents inserted: %d\n", len(result.InsertedIDs))

Tip

存在しないデータベースとコレクション

書き込み操作を実行するときに必要なデータベースとコレクションが存在しない場合は、サーバーが暗黙的にそれらを作成します。

各ドキュメントには、 フィールドとtype ratingフィールドに対応するお茶の種類の評価が含まれています。

注意

各例ではObjectID値が切り捨てられます。この値はドライバーが個別に生成するためです。

プロジェクションは、一致したドキュメントで返されるフィールドを指定します。 フィールド名とそれに続く1 (含める場合)、または0 (除外する場合)が含まれます。 プロジェクションには、フィールドを含めるか除外するフィールドのみが含まれます。

次の読み取り操作メソッドのオプションで、 SetProjection()メソッドに 1 つを渡すことでプロジェクションを指定できます。

  • Find()

  • FindOne()

  • FindOneAndDelete()

  • FindOneAndReplace()

  • FindOneAndUpdate()

Tip

プロジェクションを指定しない場合、読み取り操作は一致したドキュメント内のすべてのフィールドを返します。

フィールドを除外するには、除外するフィールドと0SetProjection()メソッドに渡します。 プロジェクションで明示的にリストしないすべてのフィールドには、ドライバーはそれらを含めます。

次の例えではFind()メソッドの一致したドキュメントからratingを除外します。

opts := options.Find().SetProjection(bson.D{{"rating", 0}})
cursor, err := coll.Find(context.TODO(), bson.D{}, opts)
if err != nil {
panic(err)
}
var results []bson.D
if err = cursor.All(context.TODO(), &results); err != nil {
panic(err)
}
for _, result := range results {
fmt.Println(result)
}

フィールドを含めるには、含めるフィールドと1SetProjection()メソッドに渡します。 プロジェクションで明示的にリストしないすべてのフィールドについて、ドライバーはそれらを除外します。

重要

特定のフィールドを含めるように指定した場合でも、 _idフィールドを除外することができます。 デフォルトでは、ドライバーには_idフィールドが含まれています。 返されない場合は、 _idフィールドを明示的に除外する必要があります。

次の例では、 Find()メソッドから一致したドキュメントに対して次のプロジェクションを実行します。

  • typeratingフィールドを含める

  • _idフィールドを除外する

opts := options.Find().SetProjection(bson.D{{"type", 1}, {"rating", 1}, {"_id", 0}})
cursor, err := coll.Find(context.TODO(), bson.D{}, opts)
if err != nil {
panic(err)
}
var results []bson.D
if err = cursor.All(context.TODO(), &results); err != nil {
panic(err)
}
for _, result := range results {
fmt.Println(result)
}

また、集計パイプラインでプロジェクションを指定するには、 $projectステージを含めます。

次の例では、 Aggregate()メソッドから一致したドキュメントに対して次のプロジェクションを実行します。

  • typeratingフィールドを含める

  • _idフィールドを除外する

projectStage := bson.D{{"$project", bson.D{{"type", 1}, {"rating", 1}, {"_id", 0}}}}
cursor, err := coll.Aggregate(context.TODO(), mongo.Pipeline{projectStage})
if err != nil {
panic(err)
}
var results []bson.D
if err = cursor.All(context.TODO(), &results); err != nil {
panic(err)
}
for _, result := range results {
fmt.Println(result)
}

上記で説明されている操作の詳細については、次のガイドを参照してください。

テキスト検索からテキスト スコアを予測する方法については、「テキストを検索する」を参照してください。

このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。

←  返される結果の数を制限する検索テキスト →
フィードバックを送る
© 2022 MongoDB, Inc.

会社概要

© 2022 MongoDB, Inc.