Docs Menu
Docs Home
/ / /
Scala
/

プロジェクション

項目一覧

  • 包含
  • Exclusion
  • _id フィールドの除外
  • 指定フィルターによる配列要素の一致
  • 暗黙的なフィルターによる配列要素一致
  • スライス
  • テキストスコア
  • プロジェクションの組み合わせ

プロジェクション クラスは、 MongoDB プロジェクション演算子 の静的ファクトリー メソッドを提供します。各メソッドは Bson型のインスタンスを返します。これは、プロジェクションを必要とする任意のメソッドに渡すことができます。

次のコードに示すように、 Projectionsクラスのメソッドを静的にインポートできます。

import org.mongodb.scala.model.Projections._

このガイドの例では、この静的インポートを前提としています。

デフォルトでは、各ドキュメントのすべてのフィールドが結果に含まれます。 1 つ以上のフィールドを含めるフィールドを指定し、 _id以外のすべてのフィールドを暗黙的に除外するには、 include()メソッドを使用します。

次の例には、 quantityフィールドと暗黙的に_idフィールドが含まれています。

include("quantity")

次の例には、 quantityフィールドとtotalAmountフィールドと、暗黙的に_idフィールドが含まれています。

include("quantity", "totalAmount")

他のすべてのフィールドが暗黙的に含まれる 1 つ以上のフィールドの除外を指定するには、 exclude()メソッドを使用します。

次の例では、 quantityフィールドが除外されています。

include("q")

次の例では、quantity フィールドとtotalAmount フィールドが除外されています。

exclude("quantity", "totalAmount")

_idフィールドの除外を指定するには、 excludeId()メソッドを使用します。

excludeId()

これは、次のコードと同等です。

exclude("_id")

指定されたクエリフィルターに一致する配列の最初の要素のみを含むプロジェクションを指定するには、フィールド名とフィルターをelemMatch()メソッドを使用します。

次の例では、 orders配列フィールドの最初の要素を投影します。ここでは、 quantityフィールドは3より大きいです。

elemMatch("orders", Filters.gt("quantity", 3))

クエリの一部として指定されたフィルターに一致する、配列の最初の要素のみを含むプロジェクションを指定するには、フィールド名のみをelemMatch()メソッドを使用します。

次の例では、クエリフィルターに一致するorders配列の最初の要素をプロジェクションします。

elemMatch("orders")

配列のスライスをプロジェクションするには、 slice()メソッドのいずれかを使用します。

次の例では、 tags配列の最初の7要素をプロジェクションします。

slice("tags", 7)

次の例では、 tags配列の最初の2要素をスキップし、次の5をプロジェクションします。

slice("tags", 2, 5)

$textクエリのスコアのプロジェクションを指定するには、 metaTextScore()メソッドを使用してプロジェクションされるフィールドの名前を指定します。

次の例では、テキスト スコアをscoreフィールドの値としてプロジェクションします。

metaTextScore("score")

複数のプロジェクションを結合するには、 フィールド メソッドを使用します。

次の例には、 quantityフィールドとtotalAmountフィールドが含まれ、 _idフィールドは除外されています。

fields(include("quantity", "totalAmount"), excludeId())

戻る

フィルター