JayData orderBy函数产生奇怪的结果

时间:2013-12-19 22:02:22

标签: web-sql jaydata

我在websql中有表格来获取我正在使用JayData的数据并写下来

_context.FoodLog.include("FoodItem").orderByDescending("it.TotalCalories").toArray().then(function(foodLogs)
{
    $scope.$apply(function ()
    {
        try
        {
            for(var i=0; i<foodLogs.length; i++)
            {
                console.log(foodLogs[i].TotalCalories);                             
            }
        }
        catch(error)
        {
            console.log("Inner Try  "+error);
        }
    })
});
在控制台中

结果是

738.00
31.56           // why this 31.50 comes before 127.91 and 101.81
127.91
101.81
10.00
10.00

但它显示结果集不按特定顺序

更新 表结构

$data.Entity.extend('SpookyHealthAppModel.FoodLog', {
'FoodLogID': { 'key':true,'type':'Edm.Int32','nullable':false,'computed':true },
'Quantity': { 'type':'Edm.String','maxLength':5 },
'TotalCalories': { 'type':'Edm.String','maxLength':10 },
'DateTime': { 'type':'Edm.DateTime' },
'ImageCol': { 'type':'Edm.String','maxLength':50 },
'Sync': { 'type':'Edm.Boolean' },
'FoodItem': { 'type':'SpookyHealthAppModel.FoodItem','required':true,'inverseProperty':'FoodLog' },
'User': { 'type':'SpookyHealthAppModel.User','required':true,'inverseProperty':'FoodLog' }
});

1 个答案:

答案 0 :(得分:1)

我发现了我的问题:) 根据我的表结构,我的查询工作正常 因为我放置order by子句的字段有String DataType,并且结果是根据字符串的顺序,如果我想要数字顺序改变这一行

'TotalCalories': { 'type':'Edm.String','maxLength':10 },

进入这个

'TotalCalories': { 'type':'Edm.Int32'}, // No need to define length now if you want in float then define float instead of int