データのクエリ
項目一覧
クエリ バーに MongoDB フィルター ドキュメントを入力して、指定した条件に一致するドキュメントのみを表示できます。ドキュメントのクエリについて詳しくは、MongoDB マニュアルの「ドキュメントのクエリ」を参照してください。
互換性
次の環境でホストされている配置のデータをクエリできます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが公開され、無料で使用できる、自己管理型の MongoDB バージョン
MongoDB Atlas でホストされている配置のデータのクエリについて詳しくは、「特定のドキュメントの検索」を参照してください。
クエリフィルターの設定
例
このページでは、小さなデータセットの例を使用しています。サンプル データを MongoDB 配置にインポートするには、次の手順を実行します。
以下のドキュメントをクリップボードにコピーします。
[ { "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ] Compass では、左側のナビゲーション パネルを使用して、データをインポートするデータベースとコレクションを選択します。
[Documents] タブをクリックします。
[Add Data] をクリックし、[Insert Document] を選択します。
View を JSON(
{}
)に設定します。クリップボードから JSON ドキュメントをモーダルに貼り付けます。
[Insert] をクリックします。
注意
MongoDB を配置していない場合、またはより大きなサンプル データセットをクエリする場合は、サンプル データを使用して無料ティアクラスターを作成する手順について、「Atlas クラスターのサンプル データ」を参照してください。次のクエリの例では、このページで提供されているサンプル ドキュメントをフィルタリングしています。
1 つの条件による一致
次のクエリフィルターは、name
の値が "Andrea Le" であるすべてのドキュメントを検索します。
{ name: "Andrea Le" }
このクエリは、次のドキュメントを返します。
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
複数条件による一致($and)
次のクエリフィルターは、scores
配列に値 75
が含まれ、name
が Greg Powell
であるすべてのドキュメントを検索します。
{ $and: [ { scores: 75, name: "Greg Powell" } ] }
このクエリは、次のドキュメントを返します。
{ "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } }
複数の可能な条件による一致($or)
次のクエリフィルターでは、$or
演算子を使用して、version
が 4
、または name
がAndrea Le
のドキュメントを検索します。
{ $or: [ { version: 4 }, { name: "Andrea Le" } ] }
このクエリでは次のドキュメントが返されます。
[ { "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } } ]
除外による一致($not)
次のクエリフィルターでは、$not
演算子を使用して、name
フィールドの値が "Andrea Le" と等しくない、またはname
フィールドが存在しないすべてのドキュメントを検索します。
{ name: { $not: { $eq: "Andrea Le" } } }
このクエリでは次のドキュメントが返されます。
[ { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ]
比較演算子による一致
次のクエリフィルターでは、$lte
演算子を使用して、version
が 4
以下であるすべてのドキュメントを検索します。
{ version: { $lte: 4 } }
このクエリでは次のドキュメントが返されます。
[ { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ]
日付による一致
次のクエリフィルターでは、$gt
演算子と Date()
メソッドを使用して、dateCreated
フィールドの値が 2000 年 6 月 22 日以降であるすべてのドキュメントを検索します。
{ dateCreated: { $gt: new Date('2000-06-22') } }
このクエリでは次のドキュメントが返されます。
[ { "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "_id": { "$oid": "5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } } ]
配列条件による一致
次のクエリフィルターでは、$elemMatch
演算子を使用して、scores
配列内の少なくとも 1 つの値が 80
より大きく、90
より小さいすべてのドキュメントを検索します。
{ scores: { $elemMatch: { $gt: 80, $lt: 90 } } }
scores
配列の値の 1 つが 85
であるため、クエリは次のドキュメントを返します。
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
その他のクエリの例については、MongoDB マニュアルの「クエリ ドキュメント」を参照してください。
Substring による一致
次のクエリフィルターでは、$regex
演算子を使用して、email
の値に "andrea_le" という用語が含まれるすべてのドキュメントを検索します。
{ email: { $regex: "andrea_le" } }
このクエリは、次のドキュメントを返します。
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
埋め込みフィールドによる一致
次のクエリフィルターで、school.name
サブフィールドが「Northwestern」であるドキュメントが検索されます。
{ "school.name": "Northwestern" }
このクエリは、次のドキュメントを返します。
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
その他のクエリの例については、MongoDB マニュアルの「クエリ ドキュメント」を参照してください。
クエリ バーでサポートされているデータ型
Compass Filter では、MongoDB 拡張 JSON BSON データ型 のmongo
shell モード表現の使用がサポートされています。
例
次のフィルターは、start_date
が BSON の Date
2017-05-01
より後のドキュメントを返します。
{ "start_date": {$gt: new Date('2017-05-01')} }
start_date
と $gt
比較演算子の両方に Date
型を指定すると、Compass ではgreater
than
比較が時系列で実行され、start_date
が 2017-05-01
より後のドキュメントを返します。
Date
型の指定がない場合、Compass は start_dates
を、値を時系列で比較するのではなく、文字列として辞書編集順 に比較します。
クエリをクリア
クエリ バーとクエリの結果を消去するには、[Reset] をクリックします。
無効な UTF8 データを含むクエリ コレクション
無効な UTF8 文字を含むデータをクエリまたはエクスポートしようとすると、次のエラー メッセージが表示されます。
Invalid UTF-8 string in BSON document.
このデータをクエリまたはエクスポートするには、enableUtf8Validation
URI オプションを false
に設定して UTF8 検証を無効にします。
警告
enableUtf8Validation=false
を使用してデータを編集すると、データが失われる可能性があります。このアプローチは、データのクエリまたはエクスポートのための一時的な回避策です。
次の URI は UTF8 検証を無効にします。
mongodb://localhost:27017/?enableUtf8Validation=false
注意
このオプションは、[高度な接続オプション] で、[enableUtf8Validation] をクリックし、false
を入力する方法でも無効にできます。
Compass クエリと MongoDB クエリおよび SQL クエリの比較
$filter
は、SQL の SELECT
ステートメントでは WHERE
句に対応します。
例
3,235 件の記事があります。Joe Bloggs が書いた記事をすべて見ようとしています。
- Compass フィルター オプション
{ author : { $eq : "Joe Bloggs" } } - MongoDB 集計
db.article.aggregate( { $match: { "author": "Joe Bloggs" } } ) - SQL
SELECT * FROM article WHERE author = "Joe Bloggs";