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

このSQLクエリをMongodb構文で作成するにはどうすればよいですか?

    このSQLクエリの場合:

    select movies.title 
    from movies 
    inner join ratings on movies.movieId=ratings.movieId 
    where movies.genres like '%Children%' 
    and ratings.rating>3 
    group by movies.title;
    

    同等のMongoDBクエリは次のとおりです:(並べ替えと制限も含まれ、不要な場合は削除します)

    db.movies.aggregate(
        [
            {
                "$lookup" : {
                    "from" : "ratings",
                    "localField" : "movieId",
                    "foreignField" : "movieId",
                    "as" : "ratings_docs"
                }
            },
            {
                "$match" : {
                    "ratings_docs" : {
                        "$ne" : [ ]
                    }
                }
            },
            {
                "$addFields" : {
                    "ratings_docs" : {
                        "$arrayElemAt" : [
                            "$ratings_docs",
                            0
                        ]
                    }
                }
            },
            {
                "$match" : {
                    "genres" : /^.*Children.*$/is,
                    "ratings_docs.rating" : {
                        "$gt" : 3
                    }
                }
            },
            {
                "$group" : {
                    "_id" : {
                        "title" : "$title"
                    }
                }
            },
            {
                "$project" : {
                    "title" : "$_id.title"
                }
            },
            {
                "$sort" : {
                    "_id" : -1
                }
            },
            {
                "$limit" : 100
            }
        ]
    )
    

    ツールからいつでも同等のmongodbクエリを生成できます。私の場合のように、No Sql Booster for MongoDBを使用しています 。また、無料バージョンのNo Sql Booster for MongoDBも使用しています。

    実行できる手順:

    • ステップ1: Mongo DBクエリ文字列を接続し、このSQLを選択します 画像に示すように:

    • ステップ2: mb.runSQLQuery()のテキスト領域が表示されます 以下に示すように。任意のクエリを記述して、[コード]をクリックできます。画像に示すように、コードは以下で生成されます。心配しないでください。すべてのクエリを変換し、データベースに接続しません。




    1. HadoopのHDFSで名前ノードの自動フェイルオーバーとは何ですか?

    2. モバイルまたはブラウザベースのアプリケーションからMongoDBを接続する

    3. MongoDBにMMAPv1ストレージエンジンを引き続き使用する必要がある理由

    4. Javascriptを使用したAzure関数でのデータベース接続の再利用