Javascript lib that operates json as a database

  • 2020-03-26 21:36:41
  • OfStack

TAFFY DB basic information
Project home page:
Host address:


<script type="text/javascript" charset="utf-8" src="taffy-min.js"></script>

//Create a blank database
var db = TAFFY(); 
//Create a database that contains one piece of data
var db = TAFFY({record:1,text:"example"}) 
 //Create database by array, the elements of the array are json-formatted objects (can be multiple)
var db = TAFFY([{record:1,text:"example"}])      
//Create data (more than one) from a json-formatted string & NBSP;    
var db = TAFFY('[{"record":1,"text":"example"}]')

Query data:
Start by building a database, and follow that database for future examples.

var db = TAFFY([//Build a database of cities with fields representing province, city name, zip code, and sort
    { province:" Beijing ", cityName:" Beijing ", zipCode:"10001", orderNum:1},
    { province:" hebei ", cityName:" shijiazhuang ", zipCode:"10002", orderNum:2},
    { province:" hebei ", cityName:" baoding ", zipCode:"10003", orderNum:3},
    { province:" hebei ", cityName:" chengde ", zipCode:"10004", orderNum:4},

1. Query according to the field value

var cities = db({province:" hebei "});  //Query all data with a province value of "hebei" and return an object in TAFFY format
//Console.log is a function that can be used in any browser with a console, such as firebug in firefox and developer tools in Google (press F12 to exhale).
for(var i = 0; i< cities().count(); i++){
    //Get (), a function of TAFFY, converts TAFFY's object data into json
    console.log(" City name ", cities().get()[i].cityName);
console.log(" The first data is :", cities().first()); //First () returns the first data in json format

2, according to the conditions query (specific conditions, please refer to "Comparison Operators" section

//Single conditional query
//Query all data with a sort greater than 2
db({ orderNum:{'>':2}});
//Range queries
//All data whose query sort is greater than 2 and less than 4
db({ orderNum:{'>':2, '<':4}});
//Multi - condition and query
//The query is greater than 2 and less than 4, and the province is the data of hebei province
db({ orderNum:{'>':2, '<':4}, province:" hebei "});
//Multi-condition or query
//Query sort & NBSP; Greater than 2 or less than 4
db({ orderNum:{'>':2}}, { orderNum : {'<':4}});
//Specify the data in query (where in)
//Inquiring the city is & NBSP; Data from baoding and shijiazhuang
db({ cityName:[' baoding ',' shijiazhuang ']});

3, sorting,

//Single conditional sort
db().order("orderNum desc");    //In reverse order according to orderNum
db().order("orderNum"); // Positive sequence 
//Multifield sort
db().order("orderNum desc, zipCode asc"); //First in reverse order in orderNum, then in positive order in zipCode

4, calculation

//For maximum
db().max("orderNum"); //Get the maximum value of orderNum and return
//For the minimum
db().min("orderNum"); //Get the smallest orderNum
// sum 
db().sum("orderNum"); //I get the sum of all orderNum
//Get the first data
db().first();  //Take the first data and return it in json format
//I get the last piece of data
db().last(); //Take the last one and return it in json format
//This can be used for pagination
db().start(15).limit(20); //Start at number 15 and then take 20

5, built-in function query, some data, need to query, do some calculations, slightly more complex, you can query through the built-in function

    return this.cityName.length > 2;

Add data

//Add a piece of data
db.insert({province:" hunan ", cityName:" changsha ", zipCode:"10005", orderNum:5});

Delete the data

//Delete all data
//Delete all data that orderNum is greater than 5

Modify the data

//Change the orderNum of all the data to 1
//Change the postcode of the city named Beijing to 100000
db({cityName:" Beijing "}).update({zipCode:"100000"})
//Add all orderNum to 1
    this.orderNum = this.orderNum + 1;
    return this;

db = TAFFY(db().stringify()); //Reinitialize the contents

Write here, I think this simple tutorial is also can, has been convenient for the quick use of this class library.
Of course, there are a lot of things that I didn't mention that need to be looked up by myself, such as fuzzy queries and so on, more complex operations. You can go to the official website of the project. (English)

Related articles: