README
Alpha Notice
This is a work-in-progress project, it is functional but with some possible bugs.
Cbez
Couchbase Made Easy for Node.js, the original Couchbase Node.js module is not quick and easy for map/reduce, no chained queries, etc. This project Cbez tries to make everything as simple as possible for developers when utilising Couchbase in a project.
This is an ES6 module to be imported with ES6 'import' keyword.
Feature Request and Bug Reporting
- Your comments are truely welcome!
- Issue board: https://github.com/datdinhquoc/cbez/issues
Installation
npm install cbez
Examples
Create Connection
import cbez from "cbez";
var Cb = new cbez();
Cb.open(Host,User,Password,Bucket,function(Err,Result){
if (Err!=null) {
console.log("Error:",Err);
Cb.close();
return;
}
//call methods in Cb instance,
//other examples are in here.
//not all features of Couchbase wrapped in this module,
//in the meantime, these are original Couchbase objects underhood:
console.log(Cb.Authenticated); //authentication status
console.log(Cb.Cluster);
console.log(Cb.Bucket);
console.log(Cb.Manager); //bucket manager
Cb.close();
});
Reset Id Counter of Certain Type
Cb.reset_id("user",function(Err,Result){
...
});
Get Next Id of Certain Type
Cb.next_id("user",function(Err,Next_Id){
//use the result 'Next_Id' here
});
Insert/Upsert A Document
Cb.insert().values(Next_Id,{
key1: "value1",
...
});
console.log(Cb.string());
//the 3 consistency levels of N1QL
var Consistency = cbez.C1; //or C2, C3
Cb.query(Consistency,function(Err,Result){
...
});
Select Documents
//the from bucket clause is auto-added
Cb.select("*").where("key1=$1").params(["value1"]);
console.log(Cb.string());
Cb.query(Consistency,function(Err,Docs){
console.log(Docs);
});
Create Viewgroup (aka. Design Document)
function all_users_map(Doc,Meta) {
if (Doc.Type=="user")
emit(Meta.id,Doc);
}
Cb.upsert_viewgroup("users",{
views: {
all_users: {
map: all_users_map
}
}
},
function(Err,Result){
...
});
Get Documents in a View
var Query = Cb.select_view("users","all_users").limit(100);
Cb.viewquery(Query,function(Err,Docs){
...
});
//end of file