sql >> データベース >  >> NoSQL >> MongoDB

DjangoでGraphQLを使用してMongoDBからデータをクエリする:Get-Go(1)

    MongoDBの使いやすさとGraphQLのパワーの組み合わせ:これ以上の組み合わせは考えられません! GraphQL + MongoDB+Djangoで作業するための一連の記事をキュレーションします。これはそのシリーズの最初の部分です。

    この記事では、その方法を学びます-

    • CSVファイルを使用してMongoDBにデータをインポートする
    • GraphQLおよびその他の関連するDjangoライブラリをインストールする
    • MongoDBからDjangoにデータをプルする

    .csvからMongoDBコレクションへ

    このコードをターミナル(mongodコンソールではなく)で直接実行して、ローカルからCSVファイルをインポートします。 JSON、CSVをTSVファイルにインポートできるツール/コマンドであるmongoimportを使用しています。

    mongoimport -d vendors -c vendors --type csv --file vendorlist.csv --headerline
    

    ここで

    -d:データベース名

    -c:コレクション名

    -headerline:ヘッダーを保持するために使用されます

    DjangoへのGraphQLのインストール

    バージョンミスのミスマッチのさらに別の物語。私はすでに彼らと遊んだので、あなたはそうする必要はありません🙂

    以下は、バージョンに関して多くの混乱を引き起こしていたエラーです-

    グラフェン-djangoのバージョンが最新の3.0b7であったが、get_default_backendパッケージをインポートできなかった場合のエラー

    各ライブラリ/パッケージ/ドライバをインストールするコマンド

    • グラフェン
    pip install graphene==2.1.8
    
    • graphql-コア
    python -m pip install graphql-core==2.3.2
    
    • ピモンゴ
    python3 -m pip install pymongo==3.12.1
    
    • グラフェン-django
    pip install "graphene-django>=2.0"
    

    💡settings.pyファイルに「graphene-django」と「graphene」を追加することを忘れないでください

    MongoDBコレクションのデータをDjangoプロジェクトに取得する

    mongoengineライブラリからDocumentクラスをインポートし、続いて必要なフィールドをインポートします。

    💡MongoDBAtlasコンソールでMongoDBのフィールドのデータ型を確認してから、Djangoプロジェクトにフィールドをインポートできます。例-ドキュメントIDのIDフィールドは常にObjectIDFieldです。

    MongoDBドキュメントベンダーがあり、ドキュメントにアクセスしているクラスはVendorDataです。

    これは、一連のMongoDB + Django+GraphQLチュートリアルの最初の部分でした。 DjangoとGraphQLでのクエリの記述については、後の部分で詳しく説明します。


    1. MongoDB-コレクションをドロップする

    2. データ集約型アプリケーションでのJava+RedisとプレーンJavaの効率?

    3. redisは、同じサーバーで実行されている複数のユーザーインスタンスをどのように分離しますか?

    4. mongodbのメモリ使用量を制限するオプションはありますか?