Overview
このチュートリアルでは、 Dlangoプロジェクトで Dlango MongoDB拡張機能パッケージを使用する方法を学習できます。
Dpango MongoDB拡張機能は、開発者ツールで Diango MongoDBバックエンド を拡張するパッケージです。このチュートリアルでは、Dlango MongoDB拡張機能 でMongoDBクエリ言語(MQL )パネルを構成し、Diango デバッグ ツールバーで使用する方法を説明します。このパネルには、アプリケーションがリクエスト中に実行するMQLクエリと、実行時間やクエリプランが表示されます。
前提条件
このチュートリアルを開始する前に、次の前提条件タスクを完了してください。
Dlango MongoDBバックエンドを使用する Dlangoプロジェクトを作成します。プロジェクトを作成するには、 「Diango MongoDBバックエンドを使い始める」チュートリアルを参照してください。
プロジェクトに Diango Debug Tools をインストールして構成します。手順を表示するには、Diango デバッグ ツールバー ドキュメントの「 のインストール 」を参照してください。
Tutorial
次の手順では、DくださいMongoDB拡張機能をインストールし、 MQLパネルを構成し、Diango デバッグ ツールバーでMongoDBクエリを表示する方法を示します。
MQLパネルを登録します。
デフォルトでは 、Diango デバッグ ツールバーは DEBUG_TOOLBAR_PANELS 設定なしで動作します。ただし、 MongoDB はSQLを使用しないため、 MongoDBアプリケーションの最も一般的な構成は、 SQLパネルをMQLパネルに置き換えることです。次の設定を settings.pyファイルに追加します。これにより、DEBUG_TOOLBAR_PANELS はデフォルト値に設定されますが、SQLPanel は MQLPanel に置き換えられます。
DEBUG_TOOLBAR_PANELS = [ 'debug_toolbar.panels.history.HistoryPanel', 'debug_toolbar.panels.versions.VersionsPanel', 'debug_toolbar.panels.timer.TimerPanel', 'debug_toolbar.panels.settings.SettingsPanel', 'debug_toolbar.panels.headers.HeadersPanel', 'debug_toolbar.panels.request.RequestPanel', 'django_mongodb_extensions.mql_panel.MQLPanel', 'debug_toolbar.panels.staticfiles.StaticFilesPanel', 'debug_toolbar.panels.templates.TemplatesPanel', 'debug_toolbar.panels.alerts.AlertsPanel', 'debug_toolbar.panels.cache.CachePanel', 'debug_toolbar.panels.signals.SignalsPanel', 'debug_toolbar.panels.community.CommunityPanel', 'debug_toolbar.panels.redirects.RedirectsPanel', 'debug_toolbar.panels.profiling.ProfilingPanel', ]
sample_mflix.moviesクエリ情報を表示します。
「 MongoDBバックエンドを使い始める 」チュートリアルで作成されたアプリケーションに Dlango MongoDB拡張機能 を構成すると、 http://:127.0.0.1 8000/recent_movies/ に移動して、リクエスト中に実行されたMongoDBクエリを表示できます。
Dpango デバッグ ツールバーはページの右側に表示されます。最近の映画を表示するために使用されるMongoDBクエリを表示するには、MQL ラベルを選択します。これは次のコードのようになります。
db.movies.aggregate([{'$addFields': {'released': '$released'}}, {'$sort': SON([('released', -1)])}, {'$limit': 5}])
次に、次のボタンをクリックして、クエリ情報を検索できます。
次のコードのようなトレースバックを表示するには、クエリの左側にある [+] ボタンを選択します。
/path/to/site-packages/django/contrib/staticfiles/handlers.py in __call__(80) return self.application(environ, start_response) /path/to/djangoquickstart/sample_mflix/views.py in recent_movies(11) return render(request, "recent_movies.html", {"movies": movies}) /path/to/site-packages/django/shortcuts.py in render(25) content = loader.render_to_string(template_name, context, request, using=using) ... pretty-printed MQLを表示するには、ACTION 列のクエリの右側にある Query ボタンを選択します。このMQL は次のコードに似ています。
db.movies.aggregate( [ { "$addFields": { "released": "$released" } }, { "$sort": { "released": -1 } }, { "$limit": 5 } ] ) ExplainACTIONクエリの実行プランを表示するには、クエリの右側にある ボタンを選択します。このプランは、次のコードのようになります。
{ "explainVersion": "1", "stages": [ { "$cursor": { "queryPlanner": { ... }, "executionStats": { ... } }, "nReturned": 21351, "executionTimeMillisEstimate": 59 }, { "$addFields": { "released": "$released" }, "nReturned": 21351, "executionTimeMillisEstimate": 70 }, { "$sort": { "sortKey": { "released": -1 }, "limit": 5 }, ... } ], ... }
次のステップ
「Diango MongoDB拡張機能」のチュートリアルが完了しました。これで、 MongoDB拡張機能 を使用して MongoDB デバッグ ツールバーでMongoDBクエリを表示および分析する Dlangoアプリケーションができました。
Dlango MongoDB拡張機能パッケージの詳細については、 PyPI の diango-mongodb-extentions および GitHub の diango-mongodb-extentionsリポジトリ を参照してください。
データをクエリする方法については、「 クエリの指定 」ガイドを参照してください。