2

Json を使用してクライアント側 (javascript) でデータを表現しています。.net データ テーブル オブジェクトを json に変換し、Json データにフィルターを適用する必要があります。_.where を使用して基本的なデータ フィルターを適用しましたが、次のような複雑なフィルター処理が必要です。

where = (stundentID = 55 and school='abc') AND (City='xyz' or City ='abc')

これは、Oracle または SQL サーバーのクエリで使用した基本的なタイプのフィルタリングです。underscore.jsまたはJsonまたはjavascript構造に相当するものを使用して、このようなメカニズムをどのように適用できますか。また、javascript で集計 [Sum(sales)==500] を使用して、上位 N レコードを取得するクエリを実行する必要がある場合もあります。貴重なご提案をお待ちしています。

ありがとう、

4

2 に答える 2

4

この JSON が通常の JavaScript オブジェクトとして表現されていると仮定すると (結局のところ、JSON オブジェクトのようなものは存在しません)、おそらくlinq.jsを使用することをお勧めします。

次のようなことができます。

var studentFilteredArray = 
          Enumerable.From(students)
                    .Where(function(s) { return s.studenId == 55;  })
                    .OrderBy(function(s) { return s.LastName; })
                    .ToArray();

または上記の例から:

.Where(function(s) { 
      return s.studentID === 55 && s.school === 'abc' && (s.City === 'xyz' || s.City === 'abc') 
});
于 2013-01-04T16:21:02.543 に答える
0

また、標準の SQL SELECT WHERE ステートメントを使用できるalasql.jsを試すこともできます。Alasql は、データベース内のテーブルのような JSON 配列を操作するために特別に設計されました。

// Create database and describe the table
var db = new alasql.Database();
db.exec('CREATE TABLE students ([studentID] INT, school STRING, [City] STRING)');

// Assign you array here
db.tables.students.data = [
       {studentID: 55, school: 'abc', City:'abc'},
       {studentID: 56, school: 'klm', City:'xyz'},
       {studentID: 57, school: 'nyz', City:'xyz'}
    ];

// Use regular SQL 
console.log(db.exec("SELECT * FROM students "
  +" WHERE ([studentID] = 55 AND school='abc') AND ([City]='xyz' OR [City] ='abc')"));

この例を jsFiddle で試してください。

于 2014-10-30T10:08:52.693 に答える