MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara menulis kueri SQL ini dalam sintaks Mongodb?

Untuk Kueri SQL ini:

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;

Query MongoDB yang setara adalah:(termasuk sortir dan limit juga, hapus jika tidak diperlukan)

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

Anda juga dapat membuat kueri mongodb yang setara kapan saja dari alat. seperti dalam kasus saya, saya menggunakan No Sql Booster for MongoDB . Saya juga menggunakan versi gratis No Sql Booster for MongoDB

Langkah-langkah yang dapat Anda ikuti:

  • LANGKAH 1: Hubungkan String Kueri DB Mongo Anda, dan pilih SQL ini seperti yang ditunjukkan pada gambar:

  • LANGKAH 2: Anda akan melihat area teks dengan mb.runSQLQuery() seperti yang ditunjukkan di bawah ini. Anda dapat menulis kueri apa pun, dan mengklik Kode. Kode akan dihasilkan di bawah ini seperti yang ditunjukkan pada gambar. Jangan khawatir, ini mengonversi semua kueri, tidak terhubung ke database.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $indexOfBytes

  2. Spring Data Mongo - Bagaimana cara memetakan entitas POJO yang diwarisi?

  3. Bagaimana cara membuat kueri untuk memperbarui dokumen array bersarang di mongo?

  4. kelompokkan berdasarkan tanggal dalam permintaan mogodb tanpa mempertimbangkan waktu

  5. tidak dapat membagi':URI buruk (bukan URI?):