SODA query API gives you a possibility to sort any field in ascending or descending order and combine sorting of different fields. For example, let's retrieve the objects of the Pilot class saved before, sorting "points" field in descending order and "name" field in ascending.
01public static void GetObjectsSODA() 02
{ 03
IObjectContainer db = Db4oFactory.OpenFile(YapFileName); 04
try 05
{ 06
IQuery query = db.Query(); 07
query.Constrain(typeof(Pilot)); 08
query.Descend("_name").OrderAscending(); 09
query.Descend("_points").OrderDescending(); 10
DateTime dt1 = DateTime.UtcNow; 11
IObjectSet result = query.Execute(); 12
DateTime dt2 = DateTime.UtcNow; 13
TimeSpan diff = dt2 - dt1; 14
Console.WriteLine("Time to query and sort with SODA: " + diff.Milliseconds + " ms."); 15
ListResult(result); 16
} 17
finally 18
{ 19
db.Close(); 20
} 21
}
01Public Shared Sub GetObjectsSODA() 02
Dim db As IObjectContainer = Db4oFactory.OpenFile(YapFileName) 03
Try 04
Dim query As IQuery = db.Query 05
query.Constrain(GetType(Pilot)) 06
query.Descend("_name").OrderAscending() 07
query.Descend("_points").OrderDescending() 08
Dim dt1 As DateTime = DateTime.UtcNow 09
Dim result As IObjectSet = query.Execute 10
Dim dt2 As DateTime = DateTime.UtcNow 11
Dim diff As TimeSpan = dt2 - dt1 12
Console.WriteLine("Time to query and sort with SODA: " + diff.Milliseconds.ToString() + " ms.") 13
ListResult(result) 14
Finally 15
db.Close() 16
End Try 17
End Sub
Obvious disadvantages of this method:
The valuable advantage of this method is its high performance.