一、jsonDB

下载地址:https://github.com/ThinkerCodeChina/jsonDB

jsonDB是js的一个类库,实现使用SQL语句对json数据增删改查。
jsonDB的构建源自于HTML5本地存储的一个应用需求,可以通过sql对json数据进行增删改查,同时该类库提供强大的where检索条件,数据排序,limit查询条件限制等数据库基本功能。
通过jsonDB可以轻松维护一个库/表或多个库/表,而无需额外实现json的数据的维护等,在该类库完善以后为简化sql操作,基于jsonDB核心模块扩展了连贯操作模型,简化对jsonDB的操作以及sql语句出错的概率。

二、当前版本的不足:

1.无法支持查询字段运算
2.不支持对没有选取的查询字段排序
3.只支持单个字段排序,无法进行组合排序操作
4.update、delete语句不支持order by子句,导致limit子句功能弱化
5.编写where条件是必须使用()包含where条件
6.无法选取深层次的字段作为返回字段
7.没有错误或异常解决方案
8.不支持外部扩展 

三、jsonDB基础应用示例:

 1 //创建一张user数据表,并定义一个DB的jsonDB别名
 2 var data = [{username:'张三',sex:'男',birthday:{year:2000,month:6,day:18}},{username:'李红',sex:'女',birthday:{year:1986,month:9,day:22}}];
 3 //以下方法可以通过两种方式获取别名,一个是通过init方法获取(推荐),一个是获取jsonDB()方法的返回值
 4 //以后示例中都将使用init()方法创建的别名操作数据
 5 var jDB = jsonDB(data,'user').init('DB');
 6
 7 //插入一条新的数据
 8 data = {username:'李想',sex:'男',birthday:{year:1990,month:2,day:15}};
 9 DB.insert(data,'user');
10
11 //查询姓名为李红的性别,where条件必须加()否者会出现错误
12 var result =DB.query('select sex from user where (username="李红")');
13 //结果:[{"sex":"女"}]
14
15 //查询2000年之前出生的且按出生年先后排序
16 var result =DB.query('select * from user where (birthday.year<2000) order by birthday.year asc');
17 //结果:[{"username":"李红","sex":"女","birthday":{"year":1986,"month":9,"day":22}},{"username":"李想","sex":"男","birthday":{"year":1990,"month":2,"day":15}}]
18
19 //查询年龄最小的两个人
20 var result =DB.query('select * from user order by birthday.year desc limit 2');
21 //查询结果:[{"username":"张三","sex":"男","birthday":{"year":2000,"month":6,"day":18}},{"username":"李想","sex":"男","birthday":{"year":1990,"month":2,"day":15}}]
22
23 //修改李红的出生日期
24 var result =DB.query('update user set birthday.year=1991 where (username="李红") limit 1');
25 //影响条数为一条,可以通过DB.findAll('user')获取全部数据查看是否被修改成功
26
27 //删除姓名为李想的数据
28 var result =DB.query('delete from user where (username="李想") limit 1');
29 //影响条数为一条,可以通过DB.findAll('user')获取全部数据查看是否被删除成功
30
31 //数据库中所有数据
32 //[{"username":"张三","sex":"男","birthday":{"year":2000,"month":6,"day":18}},{"username":"李红","sex":"女","birthday":{"year":1991,"month":9,"day":22}}] 

四、jsonDB的高级应用示例:

 1 //向数据表插入一条数据
 2 DB.table('user').add({username:'王帅',sex:'男',birthday:{year:1995,month:10,day:23}});
 3
 4 //查询所有人出生日期,并按出生年排序,由于之前使用table('user')定义为user表,所以可以省略,table方法定义是一直有效的,除非是重新设定了
 5 var result = DB.field('username,birthday').order('birthday.year').select();
 6 //查询结果  [{"username":"李红","birthday":{"year":1991,"month":9,"day":22}},{"username":"王帅","birthday":{"year":1995,"month":10,"day":23}},{"username":"张三","birthday":{"year":2000,"month":6,"day":18}}]
 7
 8 //先插入一些数据,方便后面的检索操作
 9 DB.table('user').add({username:'李亨',sex:'男',birthday:{year:2008,month:8,day:8}})
10 .add({username:'张琦',sex:'男',birthday:{year:1990,month:10,day:23}})
11 .add({username:'李媛芳',sex:'女',birthday:{year:1985,month:2,day:28}})
12 .add({username:'李果果',sex:'女',birthday:{year:2002,month:3,day:15}})
13 .add({username:'张源',sex:'男',birthday:{year:2005,month:12,day:5}})
14 .add({username:'王丽娜',sex:'女',birthday:{year:1992,month:5,day:12}});
15
16 //高级查询之模糊搜索
17 //查询所有李姓成员(正则查找法)
18 var result = DB.field(["username"]).where('username.match(/^李/)').select();
19 //查询结果[{"username":"李红"},{"username":"李亨"},{"username":"李媛芳"},{"username":"李果果"}]
20
21 //查询所有李姓成员(字符串搜索法)
22 var result = DB.field(["username"]).where('username.indexOf("李")=0').select();
23 //查询结果[{"username":"李红"},{"username":"李亨"},{"username":"李媛芳"},{"username":"李果果"}]
24
25 //查询所有在1990年到1995年出生的人
26 var result = DB.field(["username","birthday"]).where('birthday.year>=1990 and birthday.year<=1995').order('birthday.year').select();
27 //查询结果:[{"username":"张琦","birthday":{"year":1990,"month":10,"day":23}},{"username":"李红","birthday":{"year":1991,"month":9,"day":22}},{"username":"王丽娜","birthday":{"year":1992,"month":5,"day":12}},{"username":"王帅","birthday":{"year":1995,"month":10,"day":23}}]

转载于:https://www.cnblogs.com/ding2011/p/4582779.html

Jquery 实现json复杂查询等操作(jsonDB)相关推荐

  1. php ajax mysql 分页查询_PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)

    1.首先做主页面Ajax_pag.php 代码如下: Ajax做分页 .header{ margin-top: 20px; } 关键字: 地区代号地区名称父级代号 2.然后做分页查询JS页面Ajax_ ...

  2. json ajax查询,jQuery AJAX和JSON性能查询

    我将一些JSON数据存储在文本文件中,以便在我的页面中使用jQuery Ajax进行查询.目前,我的文本文件包含大约10个数据面(可能包含额外的30个数据面). JSON数据包含这些问题的问题和答案. ...

  3. ajax+php+jq+面向对象,php+jquery+ajax+json的一个最简单实例

    html页面: $(function(){ $("#send").click(function(){ var cont = $("input").seriali ...

  4. JQUERY对RADIO,CHECKBOX,SELECT的操作常用方法大全

    JQUERY对RADIO,CHECKBOX,SELECT的操作 ******************************************************************** ...

  5. jquery java json转字符串_用jQuery以及JSON包将表单数据转为JSON字符串

    用jQuery以及JSON包将表单数据转为JSON字符串 [日期:2013-01-10] 来源:Linux社区 作者:Linux [字体:大 中 小] 提供一个将表单数据转为json对象,再转为字符串 ...

  6. jquery 对 Json 的各种遍历

    原文链接: http://caibaojian.com/jquery-each-json.html 概述 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, ...

  7. jQuery(三):样式操作

    一.DOM操作分类 DOM Core:任何一种支持DOM的编程语言都可以使用它,例如:getElementById(). HTML-DOM:用于处理HTML文档,例如:document.forms. ...

  8. 对JSON的一点认识和理解以及JQuery处理JSON

    JSON(JavaScript Object Notation)javscript对象标记,是一种轻量级的数据交换格式.具体的详细基础知识可以参考JSON官网http:/www.json.org/. ...

  9. jq处理返回来json_(转)JQuery处理json与ajax返回JSON实例

    son数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax与json配合使用了,下面我来给大家介绍jquery处理json数据方法. 一.JSON的一些基础知识. JSON中对象通过 ...

  10. html5中奖名单特效,jQuery基于json动态随机获取中奖名单抽奖代码

    jQuery基于json动态随机获取中奖名单抽奖代码,可以随机批量抽出多个中奖用户名单. 查看演示 下载资源: 22 次 下载资源 下载积分: 20 积分 js代码 //从一个给定的数组arr中,随机 ...

最新文章

  1. python 虚拟现实_虚拟现实 | MOOC中国 - 慕课改变你,你改变世界
  2. 3.db2性能和优化
  3. [上海]LinkCoder第四期活动——Jeffrey Richter:Win 8应用开发与.NET4.5
  4. 集客家客运维那些事_2011年集客家客代维考试题库V2
  5. python flv转mp4_ffmpeg将多个flv文件合成为mp4(python版)
  6. IntelliJ IDEA 学习笔记
  7. 北京大学药学院张亮仁教授/刘振明研究员课题组博士后招聘启事
  8. Unity3D之Json序列化
  9. 计算机网络自顶向下-第 8 版
  10. 使用JPA @OneToMany关联时,@ JoinColumn和mappedBy有什么区别
  11. 动态SQL之、条件判断(转)
  12. vscode react 代码格式化
  13. linux下启动tomcat----Cannot find ./catalina.sh
  14. 电脑现在找不到驱动器,设备管理器显示DVD/CD-ROM驱动器是黄色感叹号
  15. 几种可视化数据分析图表的使用
  16. Learning Framer X 学习Framer X Lynda课程中文字幕
  17. 免费服务器AWS免费使用一年详细教程
  18. R语言ggplot2 |绘制高颜值森林图
  19. 【Linux】Supervisor—开机自启服务
  20. 内容带分隔符的字符串分隔处理

热门文章

  1. 联想thinkpad E430c 重装系统之后无线连接显示红叉解决办法
  2. Excel在统计分析中的应用—第十三章—时间序列分析-季节变动的测定(季节虚拟变量回归法)
  3. ElasticSearch学习总结(基础篇,可学习,可复习)
  4. 英语论文拟定论文标题的基本原则
  5. Nexmoe 博客主题的设计理念
  6. linux替换空格、
  7. 后盾网mysql_后盾网MySQL数据库视频图文详细教程资源推荐
  8. 前缀学习第二课(下)
  9. 走向全民开发,低代码重塑企业数字化生产力 | 爱分析报告
  10. GitHub账号注册教程