DocumentDB - sortowanie rekordów
Microsoft Azure DocumentDB obsługuje tworzenie zapytań dotyczących dokumentów przy użyciu języka SQL zamiast dokumentów JSON. Możesz sortować dokumenty w kolekcji według liczb i ciągów znaków za pomocą klauzuli ORDER BY w zapytaniu. Klauzula może zawierać opcjonalny argument ASC / DESC w celu określenia kolejności, w jakiej należy pobierać wyniki.
Spójrzmy na poniższy przykład, w którym mamy dokument JSON.
{
"id": "Food Menu",
"description": "Grapes, red or green (European type, such as Thompson seedless), raw",
"tags": [
{
"name": "grapes"
},
{
"name": "red or green (european type"
},
{
"name": "such as thompson seedless)"
},
{
"name": "raw"
}
],
"foodGroup": "Fruits and Fruit Juices",
"servings": [
{
"amount": 1,
"description": "cup",
"weightInGrams": 151
},
{
"amount": 10,
"description": "grapes",
"weightInGrams": 49
},
{
"amount": 1,
"description": "NLEA serving",
"weightInGrams": 126
}
]
}
Poniżej znajduje się zapytanie SQL służące do sortowania wyniku w porządku malejącym.
SELECT f.description, f.foodGroup,
f.servings[2].description AS servingDescription,
f.servings[2].weightInGrams AS servingWeight
FROM f
ORDER BY f.servings[2].weightInGrams DESC
Po wykonaniu powyższego zapytania otrzymasz następujące dane wyjściowe.
[
{
"description": "Grapes, red or green (European type, such as Thompson
seedless), raw",
"foodGroup": "Fruits and Fruit Juices",
"servingDescription": "NLEA serving",
"servingWeight": 126
}
]