2016-05-03 9 views
0

スケジューラスクリプトを使用して、Azure Mobile Servicesでテーブルの最後の項目を取得する必要があります。ここでAzure NodeJSバックエンドが最後のエンティティを取得する

は、これを行うために使用される私ののsctipt、次のとおりです。

tlmtTable 
    .orderByDescending('id')       
    .where({deviceId: deviceId})       
    .take(1)       
    .read({ 
     success: function(results) { 
         console.warn(results);            
        } 
      }); 

エラーがどこにあるか私にはわからないが、それは何も返しません。並べ替えをせずに使用するたびに、ログに行が表示されます。スクリプトのこのバージョンは、行を返しますが、ない最後の1:

tlmtTable 
    .where({deviceId: deviceId})       
    .take(1)       
    .read({ 
     success: function(results) { 
         console.warn(results);            
        } 
      }); 

私は、クエリの他の場所に「.orderByDescending」に移動しようとした - それは助けにはなりません。結果を並べ替えることができ、最後のレコードを得ることができないのか分かりません。多分あなたは私を助けることができます。ありがとうございました!

答えて

1

文字列IDまたは整数IDを使用していますか?デフォルトでは、IDは文字列であり、指定されていない場合は自動的にGUIDが割り当てられます。生成されたGUIDは、あなたが期待している方法をソートしません。より良い解決策は、idの代わりにソートに__createdAtカラムを使用することです。

+0

id - 整数。自動生成フィールドです。 '[ID] INT IDENTITY(1,1)NOT NULL'、 – Sergey

+0

SQL Server Management Studioを使用してこのテーブルを手動で作成しておく必要がありますか?それにもかかわらず、ソートに__createdAtカラムを使用するのはオプションではない理由がありますか?これが好ましいアプローチです。 –

関連する問題