允许对JSON数据进行类似SQL的查询的Javascript库?

允许对JSON数据进行类似SQL的查询的Javascript库?,javascript,jquery,sql,mysql,json,Javascript,Jquery,Sql,Mysql,Json,假设我们的JSON数据来自一个MySQL表: someJSON = [ { name: 'bill' , sex:'M', income:50000 }, { name: 'sara' , sex:'F', income:100000 }, ... ]; 假设伪代码是: “获取所有性别的所有person对象:F收入的>60000` 是否有javascript库允许使用SQL或类似SQL的语法对

假设我们的JSON数据来自一个MySQL表:

someJSON =    [ { name: 'bill' , sex:'M', income:50000 },
                { name: 'sara' , sex:'F', income:100000 },
                 ...
               ];
假设伪代码是:

“获取所有
性别的所有person对象:F
收入的
>60000`

是否有javascript库允许使用SQL或类似SQL的语法对JSON数据编写此类查询

如果您感到好奇,请提供一些上下文:


我正在为我的组织制作数据分析web服务的前端,而不知道未来的后端将是什么。将来,他们将把数据从MS Access表迁移到某种MySQL类型的数据库。在那之前,我一直在使用静态JSON文件来开始开发,并一直在想,让我的javascript查询显示为MySQL查询可能会对它们有所帮助。(当前的MS Access数据库无法从web访问。)

您可能有兴趣查看MongoDB,这是一种JSON风格的数据存储,具有完全的查询功能。这是它的

关于您的示例问题:

db.users.find({'sex': 'F', 'income' : {$gt : 60000}})

在过去的谷歌搜索中,我见过一些类似linq的javascript库

编辑-这里有几个


退房:


还有一种似乎和你要找的东西很相似。唯一的问题是它在2007年12月30日还没有更新。代码仍然可以抓取和使用。

根据您必须支持的浏览器/版本,我会努力使用,将JSON数据推送到一个或多个表中,并利用真正的SQL查询功能


这是规范草案:

还有一个称为JSONPath的XPath样式查询,我喜欢它

还有这个 哪些用户使用jQuery样式选择器来过滤数据

我使用Taffydb。 TaffyDB是一个opensouce库,它将数据库功能引入JavaScript应用程序。

我知道这个问题很老,但我只是通过谷歌搜索来这里的。我只是在听一个关于你的谈话。看起来很有前途,这正是您要搜索的内容。

您可以试试。它是纯JavaScript客户端SQL server,您可以在其中对JSON对象进行查询

   // Fill table with data
   var data = [ { name: 'bill' , sex:'M', income:50000 },
                { name: 'sara' , sex:'F', income:100000 }];

   // Do the query
   console.log(alasql("SELECT * FROM ? WHERE sex='F' AND income > 60000",[data]));


var jsonArray=[
{“user”:{“id”:100,“screen_name”:“d_linq”},“text”:“to objects”},
{“用户”:{“id”:130,“屏幕名称”:“c_bill”},“文本”:“g”},
{“user”:{“id”:155,“screen_name”:“b_mskk”},“text”:“kabushiki kaisha”},
{“用户”:{“id”:301,“屏幕名称”:“a_xbox”},“文本”:“光环到达”}
]
//[“b_mskk:kabushiki kaisha”、“c_bill:g”、“d_linq:to objects”]
var queryResult=Enumerable.From(jsonArray)
.Where(函数(x){return x.user.id<200})
.OrderBy(函数(x){return x.user.screen_name})
.Select(函数(x){return x.user.screen_name+':'+x.text})
.ToArray();
//捷径!字符串lambda选择器
var queryResult2=Enumerable.From(jsonArray)
.Where(“$.user.id<200”)
.OrderBy(“$.user.screen\u name”)
。选择(“$.user.screen_name+”:“++$.text”)
.ToArray();
console.log(queryResult);
console.log(queryResult2);

谢谢……因为你的回答,我开始研究IndexDB,一个Firefox4的客户端数据库。我们最近开始在web应用程序开发中使用TaffyDB,它大大简化了我们正在做的许多事情。有几点很奇怪,但总的来说,这很神奇。:)一般来说,这是一个很好的建议,但对于这个问题的回答很差,因为你从那里获得了
linq.js
?这个问题应该被打开,…查看ApacheDrill:
var myList = [
            {FirstName:"Chris",LastName:"Pearson"},
            {FirstName:"Kate",LastName:"Johnson"},
            {FirstName:"Josh",LastName:"Sutherland"},
            {FirstName:"John",LastName:"Ronald"},
            {FirstName:"Steve",LastName:"Pinkerton"}
            ];

var exampleArray = JSLINQ(myList)
                   .Where(function(item){ return item.FirstName == "Chris"; })
                   .OrderBy(function(item) { return item.FirstName; })
                   .Select(function(item){ return item.FirstName; });
   // Fill table with data
   var data = [ { name: 'bill' , sex:'M', income:50000 },
                { name: 'sara' , sex:'F', income:100000 }];

   // Do the query
   console.log(alasql("SELECT * FROM ? WHERE sex='F' AND income > 60000",[data]));