【问题标题】:Use SQL to query javascript objects? [closed]使用 SQL 查询 javascript 对象? [关闭]
【发布时间】:2011-07-16 16:09:17
【问题描述】:

有没有办法对 javascript 对象运行 SQL 查询以在其中查找数据?具体来说,我正在寻找一种方法来查询一些对象(每个对象代表一个数据表)并对它们执行连接。

我认为这是一个很长的问题,但仍然值得一问。

【问题讨论】:

  • 你的意思是浏览器上的某个接口可以接受SQL吗?
  • 请您提供更详细的问题描述以及一些示例 JavaScript 对象。
  • @n8wrl 不,不是接口,它更多的是用于数据的幕后操作,所以我可以接收 javascript 对象(例如来自 ajax 调用)并在之前对它们执行高级查询向用户展示。 @a'r 还没有示例 js 对象,我想知道是否有办法在构建依赖它的解决方案之前查询 js 对象。

标签: javascript mysql sql search


【解决方案1】:

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

【讨论】:

  • 从未听说过这个,但我喜欢它的外观。不过似乎没有加入。
  • 好吧,有人在他们的网站上声称他开发了类似的东西,不知道它是否属实,但您可以尝试与他联系。见以下链接:jslinq.codeplex.com/discussions/41842?ProjectName=jslinq
【解决方案2】:

SQLike 也可以很好地模拟 SQL 或 linq 语法:

http://code.google.com/p/sqlike/

【讨论】:

    【解决方案3】:

    以前从未使用过它,但在 Google 上快速搜索会得到 LINQ to Javascript。虽然它不是 SQL 语法,但它允许您在 Javascript 对象上执行类似 SQL 的操作,或者看起来如此。你可能还想看看这个question about LINQ and Javascript

    【讨论】:

      【解决方案4】:

      您可以使用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);
          });
      

      【讨论】:

        【解决方案5】:

        有 TrimQuery - 已经有一段时间没有更新了,但它很可靠。 http://code.google.com/p/trimpath/wiki/TrimQuery

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-05
          • 2016-04-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-09
          相关资源
          最近更新 更多