simple-mongodb-helper
Synopsis
Hello! Not a lot of time to write this readme, but try to make some updates about missing documented elements when times... This simple helper add some features to native mongodb driver as auto reconnect methods, eval and some basics reformated options
Installation
npm i simple-mongodb-helper
Usage
init
const mongoDB_class = require('simple-mongodb-helper');
const mongoclient = mongoDB_class.default();
or
import mongoDB from 'simple-mongodb-helper';
const mongoclient: any = mongoDB();
connect
mongoclient.connect(param)
let params = {
"host": "3.2.1.0",
"port": 27017,
"user": "zzzzz",
"password": "*****",
"authSource": "admin",
"dbName": "xxxxx",
"poolSize": 5000,
"keepAlive": 30000,
"socketTimeoutMS": 1,
"forceReconnect": true,
"forceReconnectLimit": 1000,
"replicaSet": "replication",
"w": "majority",
"readPreference": "primaryPreferred",
...
};
mongoclient.connect(param).then(() => {
//...
}).catch((e: any) => {
//...
});
This method create mongoclient.mDB witch is active mongoclient connexion
find
mongoclient.find(collection, filter, projection, sort, limit)
mongoclient.find('test',{_id:'test'},{_id:0,order:1,info:1},{order:-1},10).then((result) => {
//...
}).catch((e: any) => {
//...
});
aggregate
mongoclient.aggregate(collection, AggResquests)
mongoclient.aggregate('test',[{...},{...}]).then((result) => {
//...
}).catch((e: any) => {
//...
});
insert
mongoclient.insert(collection, documents)
mongoclient.insert('test',[{"a":"b"},{"c":"d"}]).then((result) => {
//...
}).catch((e: any) => {
//...
});
update
mongoclient.update(collection, filter, values, upsert)
mongoclient.update('test',{_id:'test'},{order:2,info:"new test"},true).then((result) => {
//...
}).catch((e: any) => {
//...
});
eval raw request
mongoclient.eval(rawScript, inputs)
// inputs is an object
let inputs = { database : "exemple", collection" : "demo" }
// rawscript must return a promise
let rawScript = "db.db(inputs.database).collection(inputs.collection).find({}).toArray()";
mongoclient.eval(rawScript,inputs).then((result) => {
//...
}).catch((e: any) => {
//...
});
replace
mongoclient.replace(collection, filter, to)
mongoclient.replace('test',{_id:'test'},{ 'element':'test'}).then((result) => {
//...
}).catch((e: any) => {
//...
});
others : native exposed
MongoClient,
ObjectID,
ObjectId,
MongoError,
MongoNetworkError,
Db,
Server,
ReplSet,
Mongos,
ReadPreference,
Logger,
AggregationCursor,
CommandCursor,
GridFSBucket,
Binary,
Code,
DBRef,
Double,
Int32,
Long,
MinKey,
MaxKey,
Timestamp,
Decimal128,
Cursor