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