1.1.10 • Published 2 years ago
cosmos-db-writer-ssl-fixed v1.1.10
cosmos-db-writer
Description
This module is for performing CRUD operations into azure cosmos DB.
Install
npm install cosmos-db-writer --save
Usage Example
const cosmosDB = require('cosmos-db-writer');
let options = {
//Cosmos db endpoint
endpoint:"",
//cosmos db primary key for your subscription
primaryKey:"",
//name for your database
dbName:"",
//name for your container
containerName:"",
// container paths for multi country database for ex. ["/Country"]
containerPaths: [],
// throughput for your transactions ex. 400
throughput:400,
// environment you are working into, example local, others
environment:""
}
cosmosDB.init(options, function(error){
// check for error.
});
//Normal fields to write in cosmos db
let dataFields = {"key1":"value1","key2":"value2"};
//fields to be read from request context which you have set
// here key will be the field name in cosmos db and value will be thekey for request context
// for example {"userId":"request:userId"}
let requestFields = {"key1":"value1","key2":"value2"};
let dataOptions={
"dataFields":dataFields,
// this field is optional, use it only if you are setting some request context fields like userId
"requestFields":requestFields
}
// containerName and callback is optional for write operation default container is the one you initialized in init method.
cosmosDB.write(dataOptions,[containerName] ,[callback]);
// *****************query data from container********************* /
let options = {};
options.clauses = [];
// set where clauses for your query, operator is for field and value, Logical Operator is for between different clauses
let clause = new cosmosDB.Clause();
clause.setField("field");
clause.setValue("value");
//{'EQ':'=', 'NEQ':'!=', 'GT':'>', 'LT':'<', 'GTE':'>=', 'LTE': '<=', 'NEQD':'<>'}
clause.setOperator(clause.operatorEnum.EQ);
//{'AND':'AND', 'OR':'OR'}
clause.setLogicalOperator(clause.logicalOperatorEnum.OR);
// groupid for same group like (field1=value1 OR field2=value2)
clause.setGroup('grp2');
// Operator for complete group with othere groups like (field1=value1 OR field2=value2) AND(field3=value3 OR field4=value4)
clause.setGroupOperator('AND');
options.clauses.push(clause);
});
// pass fields which you want to retrieve
options.fields = ["id","userId","emailId","taskId"];
// set
options.orderBy = {"field":"id", "order":"DESC"};
cosmosDB.query(options,[containerName],function(err, response){
//handle error and response here
});
// ********read specific item, it will with partition key as of now *********** /
let options = {};
options.id = "1233"// id of item to read
options.partitionKey = "India" // value for the partition key for ex India, if your partion key is country
cosmosDB.read(options,[containerName],function(err, response){
//handle error and response here
});
// *****************partial update an existing Item -- Partial update require partition key ******* /
let options = {};
options.id = "123";
options.partial= true;
options.updateFields =[{"name":"taskId","value":"12345"}],// give the list of properties you want to update withe the mentioned new value
options.partitionKey = "India" // value for the partition key for ex India, if your partion key is
cosmosDB.partialUpdate(options,[containerName],function(err, response){
//handle error and response here
}
// ********************* update an existing Item -- full update require complete itemBody ********* /
let options = {};
options.id = "123";
options.partial= false;
options.itemBody = {
"id":"123",
"name":"name of item"// pass complete object to relace the existing item
}
cosmosDB.update(options,[containerName],function(err, response){
//handle error and response here
}
// *************** delete an item ********** /
let options = {};
options.id = "123";
options.partitionKey = "India" // value for the partition key for ex India, if your partion key is
cosmosDB.delete(options,[containerName],function(err, response){
//handle error and response here
}
Versioning
1.1.3.
Authors
Ankit Choudhary
License
MIT
Acknowledgments
Hat tip to anyone whose code was used