xantic/database/mongod.js

82 lines
2.0 KiB
JavaScript
Raw Permalink Normal View History

2024-03-06 13:43:45 +05:30
const { MongoClient } = require('mongodb');
/**
*
* @param {MongoClient} client
* @param {*} callback
*/
module.exports.initMongoDBInstance = async (client,config,callback) => {
const db = client.db(config.database_name);
var call_data = {
createStore: async (name, callback) => {
db.createCollection(name).then(async () => {
await callback(true);
2024-03-14 20:26:28 +05:30
}).catch(async () => {
await callback(false);
2024-03-06 13:43:45 +05:30
})
},
list: async (table, data, callback) => {
2024-03-06 17:26:56 +05:30
var collection = db.collection(table);
var found_data = await collection.find(data).toArray();
2024-03-06 17:26:56 +05:30
await callback(found_data);
2024-03-06 17:26:56 +05:30
},
insert: async (table, data, callback) => {
2024-03-06 13:43:45 +05:30
var uuid = require('node:crypto').randomUUID();
var collection = db.collection(table);
collection.insertOne({
uuid: uuid,
...data
})
await callback(uuid)
2024-03-06 13:43:45 +05:30
},
delete: async (table, uuid, callback) => {
2024-03-06 13:43:45 +05:30
var collection = db.collection(table);
collection.deleteOne({ uuid: uuid });
await callback(true);
2024-03-06 13:43:45 +05:30
},
search: async (table, data, callback) => {
2024-03-06 13:43:45 +05:30
var collection = db.collection(table);
var found_data = await collection.findOne(data);
2024-03-06 13:43:45 +05:30
await callback(found_data);
2024-03-06 13:43:45 +05:30
},
edit: async (table, uuid, data, callback) => {
2024-03-06 13:43:45 +05:30
var collection = db.collection(table);
collection.updateOne({
uuid: uuid,
}, {
$set: {
uuid: uuid,
...data
}
});
2024-03-06 13:43:45 +05:30
await callback(true);
2024-03-06 13:43:45 +05:30
},
build: async () => {
var tables = require("./collection_tables.json");
for(var table of tables){
call_data.createStore(table, (state) => {});
2024-03-06 13:43:45 +05:30
}
}
};
callback(call_data);
};