sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan skriver jeg denne SQL-forespørgsel i Mongodb-syntaks?

For denne SQL-forespørgsel:

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;

Den tilsvarende MongoDB-forespørgsel er:(inkluderet sortering og begrænsning, fjern hvis ikke påkrævet)

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

Du kan også generere den tilsvarende mongodb-forespørgsel når som helst fra værktøjerne. ligesom i mit tilfælde bruger jeg No Sql Booster for MongoDB . Jeg bruger også gratis version af No Sql Booster for MongoDB

Trin du kan følge:

  • TRIN 1: Tilslut din Mongo DB Query String, og vælg denne SQL som vist på billedet:

  • TRIN 2: Du vil se et tekstområde med mb.runSQLQuery() som vist nedenfor. Du kan skrive en hvilken som helst forespørgsel og klikke på Kode. Koden vil blive genereret nedenfor som vist på billedet. Bare rolig, det konverterer alle forespørgsler, forbinder ikke til databasen.




  1. Hvordan aktiveres SSL/TLS i Mongoid 3-klienten?

  2. Hvordan kan jeg forespørge mongodb ved hjælp af mongoid/skinner uden timeout?

  3. Er der overhovedet at finde ud af hvilke ip-adresser der er forbundet til db?

  4. Php7 Redis Client på Alpine OS