{
"_id" : ObjectId("5f0083848f162b38900dc113"),
    "isEmailVerified" : false,
    "isProfileSetup" : true,
    "my_events" : [ 
        ObjectId("5f005a63b5524eb74813de11"), 
        ObjectId("5f005a5bb5524eb74813de0c"), 
        ObjectId("5f017dfcf8e6d8615cddfd6f")
    ]
}

Saya memiliki dokumen ini di koleksi pengguna dan saya mencoba membuat paginasi array my_events saja. Saya minta maaf jika ini adalah pertanyaan bodoh.

Pertama, apakah ini mungkin untuk membuat paginasi array ini tanpa acara mengambilnya sepenuhnya dari db dan jika ya, silakan bagikan caranya di sini.

{{url_local}}/api/event?user_id=5f0083848f162b38900dc113&page=1&limit=2

Panggilan di atas harus menemukan pengguna dengan user_id yang disebutkan dan hanya mengembalikan nilai-nilai ini: -

ObjectId("5f005a63b5524eb74813de11"),
ObjectId("5f005a5bb5524eb74813de0c")

Dan,

{{url_local}}/api/event?user_id=5f0083848f162b38900dc113&page=2&limit=2

Itu harus mengembalikan ini: -

ObjectId("5f017dfcf8e6d8615cddfd6f")
0
Abhijeet Raj 5 Juli 2020, 10:54

1 menjawab

Jawaban Terbaik

Ini dapat dicapai dengan agregasi di MongoDB, silakan periksa https://docs. mongodb.com/manual/reference/operator/aggregation/arrayElemAt/

Tetapi secara umum, keuntungan paging akan hilang karena agregasi berat pada database, Anda harus mempertimbangkan untuk mengubah struktur dokumen dan membuat koleksi untuk subdokumen dan menambahkan referensi ke dokumen induk Anda jika Anda bisa.

0
r7r 5 Juli 2020, 08:26