1.3.6 • Published 2 years ago

@zapscloud/zapsdatabase v1.3.6

Weekly downloads
1
License
MIT
Repository
github
Last release
2 years ago

zapsdatabase

Zapscloud Database API Client

Initialize Library with config values

var zapsdb = new ZapsDB({
    app: 'appname',
    authkey: ' ',
    authsecret: ' '
})

Snippet for Collection create

var dbstudents = 'students'
// Create Collection
// createCollection(collectionname, collectionkey, description)
zapsdb.createCollection(dbstudents, 'student_id', 'Students Collection')
.then(function (response) {
    // collection created successfully
})
.catch(function (err) {
    // collection created failed
});

Snippet for Insert Document

// Insert a record
//  insertOne(collectionname, jsondata)
zapsdb.insertOne(dbstudents, {
    student_id: '0001',
    student_name: 'Petronia Angeline',
    student_mark: { maths: 49, science: 95, language: 89 },
    student_class: 4
})
.then(function (response) {
    // insert successful
})
.catch(function (err) {
    // insert failure 
});

Snippet for Get a Document

// Get a record
// getOne(collectionname, key, lookupkeys)
// lookupkeys => helps to retrive relative collection
zapsdb.getOne(dbstudents, '0001')
.then(function (response) {
    // get successful
})
.catch(function (err) {
    // get failure 
});

Snippet for Multiple Document retive

// Get multiple record
// getMany(collectionname,filterquery, sortquery, skip, limit)
// filterquery => query to filter
// sortquery => sort order in group items
// skip => Skip number of records
// limit => Number of records to display

zapsdb.getMany(dbstudents,'{"student_class":10}', `{"student_name":1}`, 0, 20)
.then(function (response) {
    // get successful
})
.catch(function (err) {
    // get failure 
});

Snippet for Aggrigate Documents

// Get multiple record
// getAggregation(collectionname,filterquery,  aggquery, sortquery, skip, limit)
// aggquery => mongodb style aggregation. match, group, sort
// filterquery => query to filter
// sortquery => sort order in group items
// skip => Skip number of records
// limit => Number of records to display

var aggquery = {
            _id: "$student_class",
            count: { $sum: 1 },
            avgmaths: { $avg: "$student_mark.maths"},
            avgscience: { $avg: "$student_mark.science"},
            avglanguage: {$avg: "$student_mark.language"}
        };
        
var sortquery = { "_id": 1}
var filterquery = { "student_class": 9}


zapsdb.getAggregation(dbstudents, filterquery, aggquery, sortquery, 0, 20)
.then(function (response) {
    // get successful
})
.catch(function (err) {
    // get failure 
});

Snippet for Update a Document

// update a record by key
// updateOne(collectionname, key, jsondata)

 var updaterecord = {
    student_name: 'Amandy Maletta',
    student_mark: { maths: 95, science: 71, language: 44 },
    student_class: 10
}
zapsdb.updateOne(dbstudents, '0001', updaterecord)
.then(function (response) {
    // set & unset data successful
})
.catch(function (err) {
    // update failure 
});

Snippet for Update Multiple Documents

// update multiple records
// updateMany(collectionname, filterquery, jsondata)
 var resultupdate = {
    student_result: 'pass'
}
zapsdb.updateMany(dbstudents, 
    `{"student_mark.maths":{"$gt":40},"student_mark.science":{"$gt":40}, "student_mark.language":{"$gt":40}}`, resultupdate)
.then(function (response) {
    // set & unset data successful
})
.catch(function (err) {
    // update failure 
});

Snippet for Delete a Document

 // Delete a record
 // deleteOne(collectionname, key)
zapsdb.deleteOne(dbstudents, '001')
.then(function (response) {
    // delete successful
})
.catch(function (err) {
    // delete failure 
});

Snippet for Delete Multiple Documents

// Delete multiple records by query
// deleteMany(collectionname, filterquery)
zapsdb.deleteMany(dbstudents,  '{"student_mark.maths":{"$lt":25}, "student_class":10}')
.then(function (response) {
    // delete records with key_value contains '00' successful
})
.catch(function (err) {
    // delete failure 
});

Snippet for Retive Multiple Documents

 Get multiple record
// getMany(collectionname,filterquery)
// filterquery => query to filter, sort, skip and limit

Skip / Limit operators

  • Useful to limit the number of records returned.
  • Default operator keys are skip and limit.

Sort operator

  • Useful to sort returned records.
  • Default operator key is sort.
  • It accepts a comma-separated list of fields. Default behavior is to sort in ascending order. Use - prefixes to sort in descending order.

Query with multiple conditions

// Example of multiple conditions
zapsdb.getMany(dbstudents,'student_class=10&student_mark.science>10')
.then(function (response) {
    // get successful
})
.catch(function (err) {
    // get failure 
});

Snippet for Retive Number in String Documents

// Get multiple record
// student_id is Numeric stored in String

Query with String numeric search

// Example of multiple conditions
zapsdb.getMany(dbstudents,'student_id=string(0001)')
.then(function (response) {
    // get successful
})
.catch(function (err) {
    // get failure 
});

Snippet for Multiple Document With Skip & Limit

Skip 2 records and Limit 10 records

// Example of multiple conditions
zapsdb.getMany(dbstudents, ``,``,2,10)
.then(function (response) {
    // get successful
})
.catch(function (err) {
    // get failure 
});

Snippet for Multiple Document With Sorting

Sorting document with student_class desending and student_name ascending

// Example of multiple conditions
zapsdb.getMany(dbstudents, ``,'{"student_class":-1,"student_name":1}')
.then(function (response) {
    // get successful
})
.catch(function (err) {
    // get failure 
});

Snippet for Multiple Document With Search, Sort and Skips

Sorting document with student_class desending and student_name ascending

student_class=10 and sort by -student_class,student_name skip=1 and limit=5

// Example of multiple conditions
zapsdb.getMany(dbstudents, `{"student_class":10}`,`{"student_class":-1,"student_name":1}`,1,5')
.then(function (response) {
    // get successful
})
.catch(function (err) {
    // get failure 
});

Snippet for Lookup Relations

Define Relationship between collections and lookup reference values

Students document has student_class field Create relationship between Student document and Class document

Create Classes collection

 var dbclasses = 'classes'
zapsdb.createCollection(dbclasses, 'class_id', 'DB for Classes') 
.then(function (response) {
    console.log('Create Collection Query', response)
})
.catch(function (err) {
    console.log('Error Create collection', err)
});

Create Class document

zapsdb.insertOne(dbclasses, {
    class_id: 10,
    class_name: '10th Standard',
    class_teacher: 'Bobbee Callas',
})
.then(function (response) {
    console.log('Class Inserted', response)
})
.catch(function (err) {
    console.log('Error Insert', err)
});

Create Relation

zapsdb.createRelation(dbstudents, 'student_class', dbclasses, 'class_id')
.then(function (response) {
    console.log('Relation Created', response)
})
.catch(function (err) {
    console.log('Error Relation Create', err)
})

Lookup with getOne

zapsdb.getOne(dbstudents, '001','student_class')
.then(function (response) {
    console.log('Response Query with Class document', response)
})
.catch(function (err) {
    console.log('Error Get Details', err)
});

Snippet for Transaction (Commit All or Rollback All)

  • startTransaction
  • commitTransaction
  • rollbackTransaction
  1. Start a Transaction
  2. Create / Update / Delete actions with Transaction
  3. Commit / Rollback based on Success / Failure
var _txn;
zapsdb.startTransaction()
    .then(function (txn) {
        _txn = txn;            
        var _stu = { 
            student_name: 'Maurise Ottie',
            student_mark: { maths: 6, science: 98, language: 98 },
            student_class: 6 
        }
        return zapsdb.insertOne(dbstudents, _stu , _txn.transaction_id)
    })
    .then(function (response) {
        var resultupdate = {
            student_result: 'pass'
        }
        return zapsdb.updateMany(dbstudents, 'student_mark.maths>40&student_mark.science>40&student_mark.language>40', resultupdate, null , _txn.transaction_id)
    })
    .then(function (response) {
        var _stu = { 
            student_name: 'Arlee Kermit',
            student_mark: { maths: 19, science: 79, language: 96 },
            student_class: 9 
        }
        return zapsdb.insertOne(dbstudents, stu, _txn.transaction_id)
    })
    .then(function (response) {
        return zapsdb.deleteMany(dbstudents, 'student_id=/xyz/', _txn.transaction_id)
    })        
    .then(function (response) {
        return zapsdb.commitTransaction(_txn.transaction_id)
    })
    .then(function (response) {
        console.log('Commit Done', response)
    })
    .catch(function (err) {
        console.log('Error Commit', err)
        return zapsdb.rollbackTransaction(_txn.transaction_id)
        .then(function(res){
            console.log('Rollback Done ', res)
        })
        .catch(function(err){
            console.log('Rollback Error', err)
        })
    });
1.3.6

2 years ago

1.3.5

3 years ago

1.3.4

3 years ago

1.3.3

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.3

3 years ago

1.2.0

3 years ago

1.1.9

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.1.8

3 years ago

1.1.7

4 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago