Skip to content
戚银 edited this page May 19, 2015 · 1 revision

#jsonDB扩展

###简介: 基于jsonDB核心模块为简化sql语句编写、数据操作等方面考虑而编写的数据库连贯操作模型,在扩展模型上实现jsonDB更为强大的操作方式和功能。

1.table(table)

概述:定义之后jsonDB查询默认表名称

参数:
    table (必选)
        定义之后jsonDB要操作的默认表名称,不影响sql语句的默认表名称,只会影响之后所有连贯操作。

返回值:jsonDB

2.field(fileds)

概述:定义查询返回的字段

参数:
    fields(必选)
        可以接受数组或以,号隔开的字符串

返回值:jsonDB

3.where(where)

概述:定义查询条件,支持所有if可以接受的条件,双等号可以写成单等号,比sql语句更加简洁的是不用在where条件两端写一对括号。

参数:
    where(必选)
        查询条件

返回值:jsonDB

4.order(order)

概述:定义排序方式,目前只支持单字段排序

参数:
    order(必选)
        定义排序方式

返回值:jsonDB

5.limit(limit)

概述:限制查询条数或范围

参数:
    limit(必选)
        限制查询条数或范围,单独一个数字限制查询条数,以逗号分割两个数字代表查询范围。

返回值:jsonDB

6.add(data)

概述:可以结合table()方法向指定数据表中插入数据,如果之前没有设定table()方法将默认插入到json_db数据表中。

参数:
    data(必选)
        要插入到数据表或数据库中的数据。

返回值:jsonDB

7.select()

概述:可以配合定义的field()、table()、where()、order()、limit()方法现实复杂查询

参数:无

返回值:result

8.update(data)

概述:可以配合table()、where()、limit()方法对指定数据进行修改

参数:
    data(必选)
        update语句的set字句字符串

返回值:操作影响条数

9.delete()

概述:可以配合table()、where、limit()方法对指定数据进行删除操作

参数:无

返回值:操作影响的条数。

  1. drop()

概述:删除指定数据库或表

参数:无

返回值:jsonDB

#jsonDB的高级应用

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