Sql ke konverter kueri mongodb online

Halo kawan-kawan. Saya mencoba mengonversi tipe _______________ dan _______________
sql query_ terlihat seperti ini

"select date_trunc('day',timestamp1) as day,avg(id9) from oneindextwocolumns where timestamp1>='2010-01-01 00:00:00' and timestamp1<='2020-12-31 00:55:00'  group by day,id13 order by day asc "

Inilah yang saya coba untuk mongodb

cursor=mydb1.mongodbtime.aggregate([

    {
        "$match": {
            "timestamp1": {"$gte": datetime.strptime("2010-01-01 00:00:00", "%Y-%m-%d %H:%M:%S"),
                          "$lte" :datetime.strptime("2020-12-31 00:55:00", "%Y-%m-%d %H:%M:%S")}
        }
    },

{
        "$group": {
            "_id":{
                "date": {"$dateToString": { "format": "%Y-%m-%d ", "date": "$timestamp1" }},
                 "id13":"$id13",

        },
            "avg_id9": {
                "$avg": "$id9"
            }
      }
},
    {
        "$project": {
            "_id": 0,
            "day":"$_id.date",
            "avg_id9":1

        }
    },
    {"$sort": {"day": 1}}

])
_

Tapi saya tidak mendapatkan hasil yang sama di _______________. Apa yang saya lakukan salah?Apakah ini ada hubungannya dengan pengindeksan?saya punya satu compound index di psql table timestamp1 desc,id13 asc?Saya belum punya

cursor=mydb1.mongodbtime.aggregate([

    {
        "$match": {
            "timestamp1": {"$gte": datetime.strptime("2010-01-01 00:00:00", "%Y-%m-%d %H:%M:%S"),
                          "$lte" :datetime.strptime("2020-12-31 00:55:00", "%Y-%m-%d %H:%M:%S")}
        }
    },

{
        "$group": {
            "_id":{
                "date": {"$dateToString": { "format": "%Y-%m-%d ", "date": "$timestamp1" }},
                 "id13":"$id13",

        },
            "avg_id9": {
                "$avg": "$id9"
            }
      }
},
    {
        "$project": {
            "_id": 0,
            "day":"$_id.date",
            "avg_id9":1

        }
    },
    {"$sort": {"day": 1}}

])
0 di
cursor=mydb1.mongodbtime.aggregate([

    {
        "$match": {
            "timestamp1": {"$gte": datetime.strptime("2010-01-01 00:00:00", "%Y-%m-%d %H:%M:%S"),
                          "$lte" :datetime.strptime("2020-12-31 00:55:00", "%Y-%m-%d %H:%M:%S")}
        }
    },

{
        "$group": {
            "_id":{
                "date": {"$dateToString": { "format": "%Y-%m-%d ", "date": "$timestamp1" }},
                 "id13":"$id13",

        },
            "avg_id9": {
                "$avg": "$id9"
            }
      }
},
    {
        "$project": {
            "_id": 0,
            "day":"$_id.date",
            "avg_id9":1

        }
    },
    {"$sort": {"day": 1}}

])
1 belum
Sunting. Tampaknya hasilnya sama tetapi tidak dalam urutan yang benar

Terima kasih sebelumnya

@steevej dan @Ronan_Merrick sama-sama memberikan jawaban yang bermanfaat, jadi saya tidak akan mengulangi apa pun yang mereka katakan. Saya hanya ingin memberikan saran yang mungkin berguna agar Anda memeriksa dokumentasi tingkat tinggi pada kerangka kerja agregasi

Secara konseptual panggilan ke aggregate dimulai dengan semua dokumen dalam koleksi, dan kemudian meneruskannya melalui serangkaian tahapan agregasi yang akan melakukan hal-hal seperti memfilter dokumen (dengan $match misalnya), memodifikasinya (dengan tahapan seperti $project dan $lookup atau mengubah . Keluaran dokumen dari setiap tahap diteruskan ke tahap berikutnya untuk modifikasi lebih lanjut, hingga akhir pipa, di mana dokumen apa pun yang dikeluarkan dari tahap akhir kemudian diberikan kembali ke klien

Itu sebabnya tahapan disediakan sebagai daftar - ini adalah urutan operasi yang akan diterapkan pada dokumen. Itu juga mengapa Anda perlu melakukan $match untuk memfilter dokumen yang cocok dengan kriteria WHERE Anda, sebelum melakukan $group pada dokumen yang tersisa, untuk mendapatkan rata-rata yang diterapkan ke semua dokumen, seperti yang disarankan @Ronan_Merrick

Hai @Stennie ,

Terima kasih atas balasannya

Sebenarnya saya punya koleksi followers. Saya telah meletakkan dokumen dengan user_id dan follower_id. Saya ingin mencari semua teman dari pengguna X. (Syarat Untuk teman. semua pengguna mengikuti ke pengguna X dan X mengikuti ke semua pengguna ini. )
Saya harap Anda mengerti kondisi saya

Saya telah membuat ini =>
db. berikut. agregat([

{

  $lookup:

     {

      from: "follows",

      let: { user_id: "$user_id", follower_id: "$follower_id" },

      pipeline: [

        { $match:

           { $expr:

              { $and:

                 [

                    { $eq: [ "$follower_id", "$$user_id" ] },

                    { $eq: [ "$user_id",  "$$follower_id" ] }

                 ]

              }

           }

          

        }

     ],

      as: "friends"

    }

},

{$match:{"user_id":user_id}}
_

]);

Tapi tidak memenuhi syaratku. Saya telah mendapatkan semua data pengguna lain yang tidak memiliki teman dengan pengguna X saya
terima kasih

Bagaimana cara mengonversi kueri SQL ke MongoDB?

Untuk membuka Migrasi SQL ke MongoDB di Studio 3T. .
Klik tombol SQL Migration di toolbar, atau klik kanan ke server, database, atau koleksi di Connection Tree dan pilih opsi SQL Migration
Kemudian pilih SQL → Migrasi MongoDB. Ini akan membuka tab baru tempat Anda dapat mengonfigurasi dan menjalankan impor

Bisakah saya meminta ke MongoDB?

Kueri MongoDB memberikan kemudahan dalam proses pengambilan data dari database , mirip dengan kueri SQL dalam bahasa SQL Database. Saat melakukan operasi kueri, seseorang juga dapat menggunakan kriteria atau ketentuan yang dapat digunakan untuk mengambil data tertentu dari database.

Bagaimana cara mengonversi database MySQL ke MongoDB?

Migrasi dari MySQL ke MongoDB dilakukan dalam empat langkah. .
Tinjau skema data Anda
Ekspor data dari MySQL
Mengubah data
Impor data ke MongoDB

Bagaimana cara menggunakan SQL di MongoDB?

SQL Query memungkinkan untuk menanyakan MongoDB dengan SQL. .
Tombol – Klik pada pernyataan Execute SQL yang ditandai dengan tombol kursor (putar).
Klik kanan – Tempatkan kursor pada kueri yang diinginkan, klik kanan, dan pilih Jalankan pernyataan SQL pada kursor
Hotkey – Tekan F5 untuk mengeksekusi pernyataan SQL pada kursor