H mongoDB είναι μία document oriented database, αυτό σημαίνει ότι η αποθήκευση των εγγραφών σε ένα πίνακα της βάσης μπορεί να έχει τη μορφή δεδομένων json. Επιπλέον δεν είναι απαραίτητο ο πίνακας να έχει συγκεκριμένο αριθμό πεδίων όπως στις σχεσιακές βάσεις, οι εγγραφές συχνά περιέχουν πολλά κενά εξαιτίας του σταθερού αριθμού πεδίων του πίνακα. Με λίγα λόγια το Schema της βάσης δεν είναι απαραίτητα σταθερό.

Επιπλέον τα ερωτήματα που γίνονται για τη συλλογή των δεδομένων από τη βάση είναι δυναμικά και δεν απαιτούν συγκεκριμένους δείκτες, αλλά γράφονται σύμφωνα με την MongoDB document-based query language. Πολλές φορές ένα από το πρόβλημα που κάνει αρχες τις σχεσιακές βάσεις είναι τα πολυσύνθετα queries join σε πινακες με πάρα πολλά δεδομένα.

Τέτοιου τύπου προβλήματα μπορουν να αποφευχθούν αλλά η mongoDB είναι προτιμότερο να χρησιμοποιείται σε εφαρμογές όπου τα δεδομένα αλλάζουν πολύ γρήγορα και χρειαζόμαστε ταχύτητα, και όχι συστήματα τύπου CMS και συστήματα για Διαχείριση Πελατειακών Σχέσεων CRM

Χρησιμοποιώντας μια διανομή linux όπως είναι το Ubuntu μπορούμε να εγκαταστήσουμε γρήγορα και εύκολα τη  Mongodb


Εγκατάσταση -mong

sudo apt-get install mongodb

μας βρίσκει από τo  official repository την τελευταία έκδοση  και κάνει το  mongodb install άμεσα στον υπολογιστής μας. Στη συνέχεια πρέπει να βρούμε το αρχείο ρυθμίσεων

Ρυθμίσεις

/etc/mongodb.conf

στο παραπάνω αρχείο βρίσκονται οι ρυθμίσεις της mongodb οπου μπορούμε να αλλάξουμε διάφορες παραμέτρους όπως το port, ρυθμίσεις για replication κτλ.

 

Εκκινήση, πάυση, επανεκκίνηση

Οι ρυθμίσεις ελέγχου του mongdb server γίνονται με τις παρακάτω εντολές

sudo service mongodb start
sudo service mongodb stop
sudo service mongodb restart

 

Σύνδεση με κέλυφος

χρησιμοποιούμε απλά την εντολή mongo για να συνδεθούμε με το τερματικό (mongo client)

mongo

Αρχικά η βάση θέλουμε να έχει το όνομα test,  στη mongodb δεν υπάρχει αντίστοιχη εντολή όπως είναι το "create database" αυτό που κάνουμε  είναι να κάνουμε switch σε μια ανύπαρκτη βάσε με την εντολή

use test

Στη συνέχεια εισάγουμε απευθείας εγγραφές, αν θέλουμε να δημιουργήσουμε μία καινούργια συλλογή εγγράφων-collection (Αντιστοιχα στην SQL ένα πίνακα) με όνομα clients εισάγουμε δεδομένα απευθείας δεδομένα στη μορφή json όπου είναι το παρακάτω παράδειγμα

db.clients.insert({
  firstName: 'john',
  surname: 'doe',
  email: 'test@test.gr',
  phone: '2810232232223',
  mobile: '6985565882322',
  leadSource: 'advertisement'
});

Για να δούμε όλες τις εγγραφές στη συλλογή clients από  nosql βάση με το όνομα test

db.clients.find();

Ουσιαστικά μία συλλογή (Πίνακαs στην SQL) είναι πολλά έγγραφα τύπου, binary json (BJSON) ,τα πεδία της κάθε συλλογής δεν είναι προκαθαρισμένα όπως στους πίνακες ενός RDBMS