推定所要時間: 5 分
MongoDB クエリ言語(MQL)を使用して操作を実行できます。これにはほとんどの標準サーバー コマンドが含まれますが、すべての標準サーバー コマンドではありません。 どの MQL 操作がサポートされているかについては、「 MQL サポート」のドキュメントを参照してください。
注意
Atlas Data Federation のサンプル データセットは読み取り専用です。
前提条件
チュートリアルのこの部分を完了するには、次の手順を完了している必要があります。
部分1 : フェデレーティッドデータベースインスタンスの配置
次のクエリを実行する前に、MongoDB Shell を使用してフェデレーティッドデータベースインスタンスに接続する必要があります。
クエリ
次の例クエリは、ダウンストリーム システムのフィード ウィザードで配置したフェデレーティッドデータベースインスタンスに適用されます。
まだ行っていない場合は、以下の手順を実行して次のクエリを正常に実行します。
フェデレーティッドデータベースインスタンスのデータソースとして使用している Atlas クラスターにサンプル データをロードします。
Atlas クラスターからデータを抽出し、お使いの Amazon Web3 Services S バケットに取り込むために、 ダウンストリーム システムを構成します 。
クエリを実行する前に、 sample_airbnbデータベースに切り替えます。
use sample_airbnb3返される 層と高いレビュー スコアを持つ AirBnB オプションの数を見つけるには、次のようにします。
db.listingsAndReviews.aggregate([{$match: {"bedrooms" : 3, "review_scores.review_scores_rating": {$gt: 79}} }, {$count: "numProperties"}]){ "numProperties" : 295}3部屋が のプロパティを検索し、結果に フィールドとname bedroomsフィールドのみを含めます。返されたドキュメントをカスタマーレビュー評価で並べ替えます。 返されるドキュメントの数を5に制限します。
db.listingsAndReviews.find({"bedrooms": 3}, {"name": 1, "bedrooms": 1}).sort({review_scores_rating: -1}).limit(5)[ { _id: '20045679', name: 'House Near Espinho/Santa Maria Feira', bedrooms: Long("3") }, { _id: '19760228', name: 'Apartment Salva - 3 bedroom in Poble Sec', bedrooms: Long("3") }, { _id: '19768051', name: 'Ultra Modern Pool House Maroubra', bedrooms: Long("3") }, { _id: '19877706', name: 'Big 3 Bedroom Garden Level Apartment Near Subway', bedrooms: Long("3") }, { _id: '6291063', name: 'Beautiful Tropical Oasis near beach in Kailua', bedrooms: Long("3") }]クエリを実行する前に、 sample_analyticsデータベースに切り替えます。
use sample_analyticsの上限で10000 Commodityを購入したユーザーを検索します。 返されるドキュメントの数を3に制限します。
db.accounts.find({"limit": {$eq: 10000}, "products": "Commodity"}).limit(3){ "_id" : ObjectId("5ca4bbc7a2dd94ee5816238d"), "account_id" : 557378, "limit" : 10000, "products" : [ "InvestmentStock", "Commodity", "Brokerage", "CurrencyService" ]}{ "_id" : ObjectId("5ca4bbc7a2dd94ee58162390"), "account_id" : 278603, "limit" : 10000, "products" : [ "Commodity", "InvestmentStock" ]}{ "_id" : ObjectId("5ca4bbc7a2dd94ee5816239b"), "account_id" : 870466, "limit" : 10000, "products" : [ "Derivatives", "Brokerage", "Commodity", "InvestmentStock" ]}日付が1990-01-01より前のカスタマーを検索し、返されるドキュメント数を5に制限します:
db.customers.find({"birthdate": {$lt: ISODate("1990-01-01T22:15:34.000+00:00")}}, {"name": 1, "birthdate": 1, "email": 1}).limit(5){ "_id" : ObjectId("5ca4bbcea2dd94ee58162a6a"), "name" : "Katherine David", "birthdate" : ISODate("1988-06-20T22:15:34Z"), "email" : "timothy78@hotmail.com"}{ "_id" : ObjectId("5ca4bbcea2dd94ee58162a6c"), "name" : "Brad Cardenas", "birthdate" : ISODate("1977-05-06T21:57:35Z"), "email" : "dustin37@yahoo.com"}{ "_id" : ObjectId("5ca4bbcea2dd94ee58162a74"), "name" : "Dr. Angela Brown", "birthdate" : ISODate("1977-06-19T20:35:52Z"), "email" : "michaelespinoza@gmail.com"}{ "_id" : ObjectId("5ca4bbcea2dd94ee58162a76"), "name" : "Lauren Clark", "birthdate" : ISODate("1980-10-28T16:25:59Z"), "email" : "briannafrost@yahoo.com"}{ "_id" : ObjectId("5ca4bbcea2dd94ee58162a77"), "name" : "Jacqueline Haynes", "birthdate" : ISODate("1982-09-01T07:12:57Z"), "email" : "virginia36@hotmail.com"}アカウント ID が557378であるユーザーのトランザクションの詳細を検索し、 $sortステージを使用してtransactions.symbolフィールドでソートします。
db.accounts.aggregate([ { $match: {"account_id": 557378}},{$sort: {"transactions.symbol": -1}} ]){ "_id" : ObjectId("5ca4bbc7a2dd94ee5816238d"), "account_id" : 557378, "limit" : 10000, "products" : [ "InvestmentStock", "Commodity", "Brokerage", "CurrencyService" ]}クエリを実行する前に、 sample_mflixデータベースに切り替えます。
use sample_mflix2010から2015年までのすべての映画を検索し、結果に_id 、 title 、 yearフィールドのみを含めます。 返されるドキュメントの数を5に制限します。
db.movies.find({"type": "movie", "year": {$gt: 2010, $lt: 2015} }, {"title": 1, "year": 1 }).limit(5){ "_id" : ObjectId("573a13b8f29313caabd4c8c5"), "year" : 2011, "title" : "Thor"}{ "_id" : ObjectId("573a13b0f29313caabd34a3e"), "year" : 2011, "title" : "Cowboys & Aliens"}{ "_id" : ObjectId("573a13b8f29313caabd4ca3f"), "title" : "Red Dog", "year" : 2011}{ "_id" : ObjectId("573a13b8f29313caabd4d58c"), "title" : "Jack and Jill", "year" : 2011}{ "_id" : ObjectId("573a13b8f29313caabd4d5b5"), "year" : 2011, "title" : "Take Me Home Tonight"}ID で指定されたユーザーのセッションの詳細を検索します。
db.sessions.find({"user_id": "t3qulfeem@kwiv5.6ur"}){ "_id" : ObjectId("5a97f9c91c807bb9c6eb5fb4"), "user_id" : "t3qulfeem@kwiv5.6ur", "jwt" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NieyJpYXQiOjE1MTk5MDkzMjEsIm5iZiI6MTUxOTkwOTMyMSwianRpIjoiNmJlZDAwMWYtNTFiYi00NzVhLTgAtMDcwNGE5Mjk0MWZlIiwiZXhwIjoxNTE5OTEwMjIxLCJpZGVudGl0eSI6eyJlbWFpbCI6InQzcXVsZmVlbd2l2NS42dXIiLCJuYW1lIjoiM2lveHJtZnF4IiwicGFzc3dvcmQiOm51bGx9LCJmcmVzaCI6ZmFsc2UsInRUiOiJhY2Nlc3MiLCJ1c2VyX2NsYWltcyI6eyJ1c2VyIjp7ImVtYWlsIjoidDNxdWxmZWVtQGt3aXY1LjZ1cIm5hbWUiOiIzaW94cm1mcXgiLCJwYXNzd29yZCI6bnVsbH19ejtr_NyZyBronWMKuE0RFTjWej--T0zGrdc_iymGtVs"}idとzipcodeで指定された映画館を見つけます。
db.theaters.findOne({$and: [{"_id": ObjectId("59a47286cfa9a3a73e51e763")}, {"location.address.zipcode": "93933"}]}){ "_id" : ObjectId("59a47286cfa9a3a73e51e763"), "theaterId" : 1061, "location" : { "address" : { "street1" : "101 General Stillwell Dr", "city" : "Marina", "state" : "CA", "zipcode" : "93933" }, "geo" : { "type" : "Point", "coordinates" : [ -121.81196, 36.66708 ] } }}姓がLannisterであるすべてのユーザーを検索し、返されるドキュメント数を5に制限します。
db.users.find({ name: /Lannister/ }).limit(5){ "_id" : ObjectId("59b99db5cfa9a34dcd7885b8"), "name" : "Jaime Lannister", "email" : "nikolaj_coster-waldau@gameofthron.es", "password" : "$2b$12$6vz7wiwO.EI5Rilvq1zUc./9480gb1uPtXcahDxIadgyC3PS8XCUK"}{ "_id" : ObjectId("59b99db6cfa9a34dcd7885ba"), "name" : "Cersei Lannister", "email" : "lena_headey@gameofthron.es", "password" : "$2b$12$FExjgr7CLhNCa.oUsB9seub8mqcHzkJCFZ8heMc8CeIKOZfeTKP8m"}{ "_id" : ObjectId("59b99dbdcfa9a34dcd7885c7"), "name" : "Tyrion Lannister", "email" : "peter_dinklage@gameofthron.es", "password" : "$2b$12$xtHwQNXYlQzP2REobUDlzuQimjzBlXrTx1GnwP.xkfULeuuUpRxa2"}{ "_id" : ObjectId("59b99dc2cfa9a34dcd7885d2"), "name" : "Tywin Lannister", "email" : "charles_dance@gameofthron.es", "password" : "$2b$12$/i04T5yEJvmsBhF0Jd.kJOk3ZhRzezbTU7ASEM5o43Xxsa4o6IgEy"}{ "_id" : ObjectId("59b99dcecfa9a34dcd7885ea"), "name" : "Lancel Lannister", "email" : "eugene_simon@gameofthron.es", "password" : "$2b$12$mNWiHoOqOWQser3s6ezqZeTU5vhskTq.K7xkeTA2P.CIfoWsHvonO"}クエリを実行する前に、 sample_trainingデータベースに切り替えます。
use sample_training人口が10万を超えるすべての州を検索します。
db.zips.aggregate([{$group: { _id: "$state", totalPop: { $sum: "$pop" }}}, {$match: { totalPop: { $gte: 10*1000*1000 }}}]){ "_id" : "NY", "totalPop" : 17990455 }{ "_id" : "FL", "totalPop" : 12937926 }{ "_id" : "PA", "totalPop" : 11881643 }{ "_id" : "CA", "totalPop" : 29760021 }{ "_id" : "TX", "totalPop" : 16986510 }{ "_id" : "IL", "totalPop" : 11430602 }{ "_id" : "OH", "totalPop" : 10847115 }70分未満であったカスタマーの所要時間はすべて検索されます。
db.trips.find({"tripduration": { "$lte" : 70 }, "usertype": { "$eq": "Customer" }}){ "_id" : ObjectId("572bb8232b288919b68af7cd"), "tripduration" : 66, "start station id" : 460, "start station name" : "S 4 St & Wythe Ave", "end station id" : 460, "end station name" : "S 4 St & Wythe Ave", "bikeid" : 23779, "usertype" : "Customer", "birth year" : "", "start station location" : { "type" : "Point", "coordinates" : [ -73.96590294, 40.71285887 ] }, "end station location" : { "type" : "Point", "coordinates" : [ -73.96590294, 40.71285887 ] }, "start time" : ISODate("2016-01-02T11:49:11Z"), "stop time" : ISODate("2016-01-02T11:50:18Z")}概要
成功します。 フェデレーティッドデータベースインスタンスを設定し、S3 バケットに保存されているデータからデータベースとコレクションを作成し、MQL コマンドを使用してデータをクエリしました。
フェデレーティッドデータベースインスタンスの詳細については、「 Atlas Data Federation 」を参照してください。
注意
ファイル名からコレクションを動的に生成する場合、コレクション数はData Federationビューに正確に報告されません。