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.