Docs Menu
Docs Home
/
MongoDB Shell
/

クエリ ドキュメント

項目一覧

  • コレクション内のすべてのドキュメントの読み取り
  • 等価条件を指定
  • クエリ演算子を使用して条件を指定
  • 論理演算子を指定します( AND / OR
  • 読み取り動作
  • その他のクエリに関するチュートリアル

コレクション内のドキュメントをクエリするには、MongoDB Shell の db.collection.find()メソッドを使用します。

このページの例は、Atlas サンプル データセットを参照しています。無料の MongoDB Atlas クラスターを作成し、そのクラスターにサンプル データを入力して、以下の例に従うことができます。詳細については、「Atlas スタートガイド」を参照してください。

コレクション内のすべてのドキュメントを読み取るには、空のドキュメントをクエリフィルター パラメーターとして find メソッドに渡します。クエリフィルター パラメーターは、選択条件を決定します。

sample_mflix.moviesコレクションからすべてのドキュメントを返すには以下を行います。

use sample_mflix
db.movies.find()

この操作は、次の SQL 文と同等です。

SELECT * FROM movies

等価条件に一致するドキュメントを選択するには、クエリフィルター ドキュメントで条件を<field>:<value>ペアとして指定します。

sample_mflix.moviesコレクションからtitleTitanicに等しいすべてのムービーを返すには以下を行います。

use sample_mflix
db.movies.find( { "title": "Titanic" } )

この操作は、次の SQL ステートメントに対応しています。

SELECT * FROM movies WHERE title = "Titanic"

クエリ演算子クエリフィルター ドキュメントで使用し、より複雑な比較と評価を実行します。クエリフィルター ドキュメント内のクエリ演算子の形式は次のとおりです。

{ <field1>: { <operator1>: <value1> }, ... }

評価がPGまたはPG-13であるすべての映画をsample_mflix.moviesコレクションから返すには以下を行います。

use sample_mflix
db.movies.find( { rated: { $in: [ "PG", "PG-13" ] } } )

この操作は、次の SQL ステートメントに対応しています。

SELECT * FROM movies WHERE rated in ("PG", "PG-13")

注意

このクエリは$or 演算子を使用して表現できますが、同じフィールドで等価性チェックを実行する場合は、$or演算子ではなく$in演算子を使用します。

複合クエリは、コレクション内のドキュメントの複数のフィールドに条件を指定することができます。暗黙的に、論理的な AND 結合が複合クエリの各条件句を接続し、すべての条件に一致するドキュメントがコレクションから選択されます。

メキシコで公開されさらにIMDBの評価が7以上の映画を返すには以下を行います。

use sample_mflix
db.movies.find( { countries: "Mexico", "imdb.rating": { $gte: 7 } } )

$or演算子を使用して、各句を論理OR結合で結合する複合クエリを指定します。これにより、クエリはコレクション内で少なくとも 1 つの条件に一致するドキュメントを選択します。

sample_mflix.moviesコレクションから、2010 年に公開され、さらに少なくとも 5 つの賞を受賞したか、またはgenreDramaである映画を返すには以下を行います。

use sample_mflix
db.movies.find( {
year: 2010,
$or: [ { "awards.wins": { $gte: 5 } }, { genres: "Drama" } ]
} )

ドキュメントの読み取りの特定の動作の詳細については、 「動作」を参照してください。

その他のクエリの例については、以下を参照してください。

戻る

Insert