MongoDB-Project
MongoDB-Project è un progetto il cui scopo è studiare e trattare database noSQL tramite il DMSB non relazionale MongoDB. E' stato sviluppato (in Node.js) su steps progressivi:
-
Script di creazione di databases con uno schema standard, studiato per aumentare l'efficienza del database. I principali
aspetti di cui si è tenuto conto sono:
- non ridondanza dei dati
- velocità nel retrieve delle informazioni
- Script di testing dell'efficienza database, utile a confrontrontare database con poche collezioni e molti documenti e database con molte collezioni e pochi documenti. L'efficienza è viene valutata tramite il cronometraggio di query di find.
- Creazione di un'Api che fornisca gli endpoint per accedere al database per le operazioni di GET e PUSH.
- Script per la migrazione di un database in uno nuovo con il nuovo schema studiato e testato nei punti precedenti.
- Refactoring del progetto e publish del progetto sottoforma di npm package sotto il nome "mongodb-project".
mongodb-project npm package
Installazione:
npm i mongodb-project
Esempio d'uso:
const olyo = require('mongodb-project')
Gestione del database:
olyo.manageDatabase.createDatabase(dbInfo)
olyo.mangeDatabase.dropDatabase(dbInfo)
olyo.manageDatabase.testDatabase(dbInfo)
olyo.manageDatabase.migrateDatabase(dbInfo)
Uso dell'Api:
olyo.server.startServer(dbInfo, listeningPort);
GET
path: api/contactList
headers: sandoutId, pageId
path: api/count ? type = (sends |reads | clickBtn | clickLink ) ? best = (true | false)
headers: sandoutId, pageId
POST
path: api/
body: pageId, sandoutId, contactId, messageId, timestamp, type
dbInfo object
{
name : String,
collectionsNumber : Number,
collectionsSize : Number,
stackOfItemsSizes: {
sizeStackSends: Number,
sizeStackClickBtn: Number,
sizeStackClickLink: Number
},
sandoutSchema: {
contactsSize: Number,
sendsSize: Number,
clickBtnSize: Number,
clickLinksize: Number,
},
port: Number
}