Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Dpango MongoDB拡張機能を使い始める

このチュートリアルでは、 Dlangoプロジェクトで Dlango MongoDB拡張機能パッケージを使用する方法を学習できます。

Dpango MongoDB拡張機能は、開発者ツールで Diango MongoDBバックエンド を拡張するパッケージです。このチュートリアルでは、Dlango MongoDB拡張機能 でMongoDBクエリ言語(MQL )パネルを構成し、Diango デバッグ ツールバーで使用する方法を説明します。このパネルには、アプリケーションがリクエスト中に実行するMQLクエリと、実行時間やクエリプランが表示されます。

このチュートリアルを開始する前に、次の前提条件タスクを完了してください。

  • Dlango MongoDBバックエンドを使用する Dlangoプロジェクトを作成します。プロジェクトを作成するには、 「Diango MongoDBバックエンドを使い始める」チュートリアルを参照してください。

  • プロジェクトに Diango Debug Tools をインストールして構成します。手順を表示するには、Diango デバッグ ツールバー ドキュメントの「 のインストール 」を参照してください。

次の手順では、DくださいMongoDB拡張機能をインストールし、 MQLパネルを構成し、Diango デバッグ ツールバーでMongoDBクエリを表示する方法を示します。

1

Dpango MongoDB拡張機能をインストールするには、以下のコマンドを実行します。

pip install django-mongodb-extensions
2

次の例に示すように、プロジェクトの settings.pyファイルに移動し、INSTALLED_APPS 設定に "django_mongodb_extensions" を追加します。

INSTALLED_APPS = [
'django_mongodb_extensions',
# ... your other apps
]
3

デフォルトでは 、Diango デバッグ ツールバーは DEBUG_TOOLBAR_PANELS 設定なしで動作します。ただし、 MongoDB はSQLを使用しないため、 MongoDBアプリケーションの最も一般的な構成は、 SQLパネルをMQLパネルに置き換えることです。次の設定を settings.pyファイルに追加します。これにより、DEBUG_TOOLBAR_PANELS はデフォルト値に設定されますが、SQLPanelMQLPanel に置き換えられます。

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',
]

Tip

オプション設定

MQLパネルの動作をカスタマイズするオプション設定の方法については、 GitHub の Diango MongoDB拡張機能 のリポジトリで README を参照してください。

4

次のコマンドを実行中して、開発サーバーを起動します。

python manage.py runserver

MongoDBをクエリするアプリケーション内の任意のページに移動します。 Dpango デバッグ ツールバーを開き、MQL パネルを選択して、実行時間や説明プランなど、リクエスト中に実行されたMongoDBクエリを表示します。

5

「 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}])

次に、次のボタンをクリックして、クエリ情報を検索できます。

  1. 次のコードのようなトレースバックを表示するには、クエリの左側にある [+] ボタンを選択します。

    /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)
    ...
  2. pretty-printed MQLを表示するには、ACTION 列のクエリの右側にある Query ボタンを選択します。このMQL は次のコードに似ています。

    db.movies.aggregate(
    [
    {
    "$addFields": {
    "released": "$released"
    }
    },
    {
    "$sort": {
    "released": -1
    }
    },
    {
    "$limit": 5
    }
    ]
    )
  3. 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リポジトリ を参照してください。

データをクエリする方法については、「 クエリの指定 」ガイドを参照してください。

戻る

Queryable Encryption

項目一覧