Katakanlah saya memiliki koleksi Cosmos DB dengan SQL API yang berisi daftar pesan yang telah dikirim orang-orang yang memberikan suasana hati mereka saat ini dan stempel waktu kapan pesan tersebut diterima. Orang dapat mengirim pesan kapan pun mereka mau.
Dalam koleksi saya, saya memiliki sesuatu yang terlihat seperti ini:
[
{
"PersonName": "John",
"CurrentMood": "Moody",
"TimeStamp": "2012-04-23T18:25:43.511Z",
"id": "25123829-1745-0a09-5436-9cf8bdcc95e3"
},
{
"PersonName": "Jim",
"CurrentMood": "Happy",
"TimeStamp": "2012-05-23T17:25:43.511Z",
"id": "6feb7b41-4b85-164e-dcd4-4e078872c5e2"
},
{
"PersonName": "John",
"CurrentMood": "Moody",
"TimeStamp": "2012-05-23T18:25:43.511Z",
"id": "b021a4a5-ee92-282c-0fe0-b5d6c27019af"
},
{
"PersonName": "Don",
"CurrentMood": "Sad",
"TimeStamp": "2012-03-23T18:25:43.511Z",
"id": "ee72cb36-4304-06e5-ed7c-1d0ff890de48"
}
]
Saya ingin mengirim pertanyaan yang mendapatkan suasana hati "saat ini" dari semua pengguna yang mengirim pesan (pesan terbaru diterima untuk semua orang).
Hal ini relatif mudah dilakukan untuk setiap pengguna tertentu, dengan menggabungkan TOP 1 dan ORDER BY
SELECT TOP 1 *
FROM C
WHERE C.PersonName = "John"
ORDER BY C.TimeStamp
Namun saya merasa mengulangi semua pengguna saya dan menjalankan kueri untuk masing-masing pengguna mungkin akan sangat membuang-buang sumber daya dan menjadi mahal dengan cepat, tetapi saya tidak dapat menemukan cara yang berhasil.
Perlu diketahui bahwa saya akan segera memiliki banyak orang yang akan mengirim banyak pesan.