flexiblepersistence
Version:
69 lines • 2.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
// import { MongoClient, Db } from 'mongodb';
const mongoose_1 = require("mongoose");
class MongoDB {
constructor(databaseInfo) {
let string;
if (databaseInfo.username !== undefined && databaseInfo.password !== undefined) {
string = databaseInfo.username + ':' + databaseInfo.password + '@' + databaseInfo.host;
}
else {
string = databaseInfo.host;
}
this.databaseInfo = databaseInfo;
// let mongoose = new Mongoose();
this.mongooseInstance = new mongoose_1.Mongoose();
// this.mongooseInstance =
this.mongooseInstance.connect('mongodb://' + string + ':' + databaseInfo.port +
'/' + databaseInfo.database, { useNewUrlParser: true, useUnifiedTopology: true });
this.genericSchema = new this.mongooseInstance.Schema({}, { strict: false });
}
updateItem(scheme, item, callback) {
let model = this.mongooseInstance.model(scheme, this.genericSchema);
model.findOneAndUpdate(item, (error, doc, result) => {
callback(error, doc._doc);
});
}
readArray(scheme, item, callback) {
let model = this.mongooseInstance.model(scheme, this.genericSchema);
model.find(item, (error, doc, result) => {
callback(error, doc.map(a => a._doc));
});
}
readItem(scheme, item, callback) {
let model = this.mongooseInstance.model(scheme, this.genericSchema);
model.findOne(item, (error, doc, result) => {
callback(error, doc._doc);
});
}
readItemById(scheme, id, callback) {
let model = this.mongooseInstance.model(scheme, this.genericSchema);
model.findById(id, (error, doc, result) => {
callback(error, doc._doc);
});
}
deleteArray(scheme, item, callback) {
let model = this.mongooseInstance.model(scheme, this.genericSchema);
model.deleteMany(item, (error) => {
callback(error);
});
}
addItem(scheme, item, callback) {
let model = this.mongooseInstance.model(scheme, this.genericSchema);
model.create(item, (error, doc, result) => {
callback(error, doc._doc);
});
}
deleteItem(scheme, item, callback) {
let model = this.mongooseInstance.model(scheme, this.genericSchema);
model.findByIdAndDelete(item, (error, doc) => {
callback(error, doc);
});
}
getDatabaseInfo() {
return this.databaseInfo;
}
}
exports.MongoDB = MongoDB;
//# sourceMappingURL=mongoDB.js.map