使用SQL查询JavaScript对象?

7

有没有一种方法可以对JavaScript对象运行SQL查询以查找其中的数据?具体来说,我正在寻找一种在几个对象上进行查询(每个对象表示数据表)并在它们之间执行连接的方法。

我想这可能性不大,但还是值得问一下。


你的意思是浏览器上有一个接受 SQL 的界面吗? - n8wrl
请您提供更详细的问题描述,同时附上一些JavaScript对象的示例。 - a'r
@n8wrl 不是接口,而是用于幕后数据操作的更多内容,因此我可以在向用户显示之前对javascript对象(例如来自ajax调用)执行高级查询。@a'r 还没有样本js对象,我想知道是否有一种方法在构建依赖于它的解决方案之前查询js对象。 - Jonathan Beebe
5个回答

3

尝试使用JSLinq

查看来自该网站的示例:

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; });

从未听说过这个,但我喜欢它的外观。不过似乎没有做连接操作。 - Jonathan Beebe
有人在他们的网站上声称开发了类似的东西,不知道是否属实,但你可以尝试联系他。请查看以下链接:http://jslinq.codeplex.com/discussions/41842?ProjectName=jslinq - CloudyMarble

2

我以前从未使用过它,但在Google上快速搜索可以得到 LINQ to Javascript。虽然它不是SQL语法,但它似乎允许您在Javascript对象上执行类似于SQL的操作。您还可以查看有关LINQ和Javascript的这个问题


2

2
您可以使用async-linq,它支持JavaScript中的同步和异步LINQ操作,并具有与C#版本相当的功能。您可以通过npm install async-linq获取它。 同步操作
linq([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
    .where(function (v) { return v % 2 === 1; })
    .select(function (v) { return v * 100; })
    .run();

异步操作

linq(['abc.txt', 'def.txt', 'xyz.txt'])
    .async
    .select(function (filename, index, callback) {
        fs.stat(filename, function (err, stat) {
            callback(err, err ? null : {
                filename: filename,
                size: stat.size
            });
        });
    })
    .run(function (err, result) {
        console.log(result);
    });

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接