/
mongo-helper.js
84 lines (82 loc) · 2.38 KB
/
mongo-helper.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
require('dotenv').config();
var MongoClient = require('mongodb').MongoClient;
var MongoHelper = {
client: null,
dbo: null,
openConnection: async function(){
this.client = await this.connectToMongo();
this.dbo = await this.selectDb(this.client);
return this.dbo;
},
closeConnection: async function(){
this.client.close();
},
connectToMongo: function () {
return MongoClient.connect(process.env.MONGODB_URI, {
useUnifiedTopology: true
}).then(client => {
console.log('mongo connection establised');
return client;
}).catch(err => {
console.log(err);
return null;
});
},
selectDb: function (client) {
var dbo = client.db(process.env.DBNAME);
console.log('db selected');
return dbo;
},
insertObjectToCollection: async function (dbo, query, object) {
var collection = dbo.collection(process.env.COLLECTIONNAME);
var response = await this.findObject(dbo, query);
if (response === null){
return collection.insertOne(object)
.then(res => {
console.log('inserted');
return 'success';
})
.catch(err => {
console.log(err);
return 'failure';
});
}
else {
return 'success 2';
}
},
findObject: function (dbo, object) {
var collection = dbo.collection(process.env.COLLECTIONNAME);
return collection.findOne(object).then(res => {
return res;
}).catch(err => {
console.log(err);
return null;
});
},
updateObject: function(dbo, query, object) {
return dbo.collection(process.env.COLLECTIONNAME).updateOne(query, object)
.then(res => {
console.log('up');
return 'success'
})
.catch(err => {
console.log(err);
return 'failure'
});
},
deleteObject: function(dbo, query) {
return dbo.collection(process.env.COLLECTIONNAME).deleteOne(query)
.then(res => {
console.log('dl');
return 'success'
})
.catch(err => {
console.log('fai');
return 'failure'
});
}
}
module.exports = {
MongoHelper: MongoHelper
};