Τρόπος χειρισμού προηγμένης επεξεργασίας δεδομένων με το πλαίσιο συγκέντρωσης της MongoDB

Το MongoDB έχει διανύσει πολύ δρόμο. Παρόλο που υπάρχουν πολλές βάσεις δεδομένων NoSQL, το MongoDB είναι η πρώτη βάση δεδομένων που έρχεται στο μυαλό όταν μιλάμε για βάσεις δεδομένων NoSQL.

Παρόλο που υπήρχε πάντα λίγη ζέστη μεταξύ ανθρώπων που τους αρέσουν οι SQL και των ανθρώπων που προτιμούν το NoSQL, η αλήθεια είναι ότι οι βάσεις δεδομένων όπως το MongoDB λύνουν ένα διαφορετικό πρόβλημα.

Και μπορεί να είναι πραγματικά βολικό όταν παραδίδετε μη δομημένα δεδομένα, όπου ο χειρισμός του σχήματος των δεδομένων γρήγορα και αποτελεσματικά (και μετατρέποντάς τα σε σχετικές γνώσεις) είναι πιο χρήσιμος από την αξιόπιστη απόδοση που παρέχεται από βάσεις δεδομένων SQL παλιού σχολείου.

Το MongoDB διαθέτει ένα ισχυρό πλαίσιο για να το κάνει αυτό - δηλαδή, χειρισμό δεδομένων απευθείας στον διακομιστή: το Πλαίσιο Συγκέντρωσης. Ας μπει σε αυτό και ας καλύψουμε μερικά γρήγορα σημεία σχετικά με αυτό, τι είναι και γιατί είναι σημαντικό.

Τι είναι το Συγκεντρωτικό Πλαίσιο;

Το πλαίσιο Συγκέντρωσης είναι απλώς ένας τρόπος για να αναζητήσετε έγγραφα σε μια συλλογή στο MongoDB. Αυτό το πλαίσιο υπάρχει επειδή όταν ξεκινάτε να εργάζεστε και να χειρίζεστε δεδομένα, συχνά πρέπει να κάνετε σύναψη συλλογών, να τις τροποποιήσετε, να απομακρύνετε πεδία, να μετονομάσετε πεδία, να τα συμπλέξετε, να ομαδοποιήσετε έγγραφα ανά πεδίο, να εκραγείτε διάφορα πεδία σε διαφορετικά έγγραφα και ούτω καθεξής .

Αυτό δεν μπορεί να γίνει από το παραδοσιακό σύστημα ερωτήσεων με το MongoDB που συνοδεύει (δηλαδή, το ερώτημα εύρεσης ή το ερώτημα ενημέρωσης ή οποιοδήποτε άλλο ερώτημα μπορεί να έχετε χρησιμοποιήσει).

Το απλό σύνολο ερωτημάτων στο MongoDB σας επιτρέπει μόνο να ανακτήσετε πλήρη ή τμήματα μεμονωμένων εγγράφων. Δεν σας επιτρέπουν πραγματικά να χειριστείτε τα έγγραφα στο διακομιστή και στη συνέχεια να τα επιστρέψετε στην εφαρμογή σας.

Εδώ μπαίνει το πλαίσιο συγκέντρωσης από το MongoDB. Δεν είναι τίποτα εξωτερικό, καθώς η συγκέντρωση μπαίνει στο MongoDB. Μπορείτε να μάθετε να εργάζεστε με το πλαίσιο συγκέντρωσης MongoDB χρησιμοποιώντας αυτήν τη δωρεάν λίστα αναπαραγωγής YouTube που έφτιαξα.

Αγωγός

Το πλαίσιο Συγκέντρωσης βασίζεται στην ιδέα του αγωγού. Ας δούμε μια εικόνα που την εξηγεί με καλύτερο τρόπο:

Εδώ, όπως μπορείτε να δείτε, παραλαμβάνουμε μια συλλογή και την περνάμε μέσω ενός αγωγού. Αυτός ο αγωγός αποτελείται από ορισμένα στάδια όπου ορισμένοι χειριστές τροποποιούν τα έγγραφα στη συλλογή χρησιμοποιώντας διάφορες τεχνικές. Τέλος, η έξοδος επιστρέφεται στην εφαρμογή που καλεί το ερώτημα.

Συγκρίνετέ το με ένα απλό ερώτημα, όπως το εύρημα. Σίγουρα, λειτουργεί με τους περισσότερους τρόπους, αλλά δεν είναι πραγματικά χρήσιμο όταν θέλετε να τροποποιήσετε και τα δεδομένα κατά την ανάκτησή τους.

Είτε θα χρειαστεί να ανακτήσετε τα έγγραφα και να τα τροποποιήσετε ανάλογα στην εφαρμογή στον διακομιστή, ή, χειρότερα, θα τα στείλετε στον πελάτη και θα αφήσετε τον κωδικό frontend να τον τροποποιήσει.

Και στις δύο περιπτώσεις, σπαταλάτε πόρους και εύρος ζώνης. Έτσι, το πλαίσιο συγκέντρωσης αντιμετωπίζει με προσοχή αυτό το πρόβλημα. Ας δούμε πώς το κάνει αυτό με τους χειριστές.

Χειριστές αγωγών

Στο MongoDB, ο αγωγός είναι ένας πίνακας που αποτελείται από διάφορους χειριστές, οι οποίοι λαμβάνουν μια δέσμη εγγράφων και φτύνουν τροποποιημένα έγγραφα σύμφωνα με τους κανόνες που καθορίζονται από τον προγραμματιστή. Ο επόμενος χειριστής παίρνει τα έγγραφα που έβγαλε ο προηγούμενος χειριστής, ως εκ τούτου, ονομάζεται αγωγός.

Μπορείτε να έχετε πολλούς τελεστές σε εξέλιξη και αυτοί οι τελεστές μπορούν να επαναληφθούν επίσης, σε αντίθεση με τα κανονικά ερωτήματα MongoDB.

Ας ρίξουμε μια ματιά σε ορισμένους κοινούς φορείς εκμετάλλευσης αγωγών στο MongoDB

$ ομάδα

Αυτός ο τελεστής σάς επιτρέπει να ομαδοποιήσετε μια δέσμη εγγράφων με βάση ένα συγκεκριμένο πεδίο στα έγγραφα. Μπορεί επίσης να χρησιμοποιηθεί για την ομαδοποίηση των διαφόρων πεδίων στα έγγραφα μαζί.

Είμαι πολύ πιστός στο ρητό ότι μια εικόνα αξίζει 1000 λέξεις. Ένα βίντεο αξίζει 1000 φωτογραφίες (καλά, τεχνικά πολύ περισσότερες φωτογραφίες, αλλά εντάξει), οπότε ας δούμε ένα γρήγορο βίντεο σχετικά με αυτό:

$ αγώνα

Ο χειριστής του αγωγού αγώνα λειτουργεί πολύ παρόμοια με τον τρόπο λειτουργίας του κανονικού χειριστή εύρεσης. Το καλό για αυτό, ωστόσο, είναι ότι μπορεί να χρησιμοποιηθεί πολλές φορές επειδή βρίσκεστε σε περιβάλλον αγωγών! Αυτό το καθιστά ισχυρό.

Ας δούμε πώς χρησιμοποιείται σε μια συλλογή:

όριο $

Ο χειριστής $ skip pipeline παραλείπει τα πρώτα Ν έγγραφα και διαβιβάζει τα υπόλοιπα έγγραφα στον επόμενο χειριστή. Ας δούμε ένα γρήγορο παράδειγμα:

$ παράλειψη

Ο χειριστής αγωγού $ skip παραλείπει τα πρώτα Ν έγγραφα και διαβιβάζει τα υπόλοιπα έγγραφα στον επόμενο χειριστή. Ας δούμε ένα γρήγορο παράδειγμα:

$ χαλαρώστε

Αυτός ο χειριστής είναι προσωπικά ο αγαπημένος μου. Το $ undind παίρνει ένα πεδίο πίνακα και το εκτοξεύει σε πολλαπλά Ν έγγραφα με το i-th έγγραφο που περιέχει την i-th συγκεκριμένη τιμή του πίνακα ως την τιμή του ονόματος πεδίου.

Σε συνδυασμό με άλλους χειριστές όπως $ group και $ match, αυτό γίνεται πολύ ισχυρό για την επεξεργασία δεδομένων. Ακούγεται σύγχυση; Ας δούμε ένα απλό παράδειγμα:

έργο $

Ο διαχειριστής του έργου σας επιτρέπει να μαζέψετε πολλά πεδία από κάθε έγγραφο και να απορρίψετε τα υπόλοιπα. Όχι μόνο αυτό, αλλά μπορείτε επίσης να μετονομάσετε τα αποστραμμένα πεδία, τις συμβολοσειρές συμβολοσειρές, να αφαιρέσετε τα υποστρώματα και πολλά άλλα!

Ας δούμε πώς λειτουργεί συνοπτικά:

Βέλτιστες πρακτικές για τη χρήση του Πλαισίου Συγκέντρωσης

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

Αρχικά, λάβετε υπόψη τα ακόλουθα σημεία:

  1. Το MongoDB θα απορρίψει οποιονδήποτε χειριστή που παίρνει περισσότερα από 100MB μνήμης RAM και θα προκαλέσει σφάλμα. Γι 'αυτό, βεβαιωθείτε ότι έχετε μειώσει τα δεδομένα σας το συντομότερο δυνατό, καθώς ένας μεμονωμένος χειριστής δεν πρέπει να καταλαμβάνει περισσότερο από 100 MB μνήμη.
  2. Η παραγγελία έχει σημασία! Η πρώτη αντιστοίχιση $ θα μειώσει τον αριθμό των εγγράφων που έχουν περάσει στο υπόλοιπο του αγωγού. Η τοποθέτηση του έργου $ στη συνέχεια θα μειώσει περαιτέρω το μέγεθος ενός μεμονωμένου εγγράφου απαλλάσσοντας τα πεδία.
  3. Τέλος, βεβαιωθείτε ότι έχετε κάνει όλη τη δουλειά που απαιτεί τη χρήση ευρετηριασμένων πεδίων (ταξινόμηση, αντιστοίχιση κ.λπ.) προτού χρησιμοποιήσετε τελεστές όπως το $ project ή το $ relax. Αυτό συμβαίνει επειδή αυτοί οι τελεστές δημιουργούν νέα έγγραφα που δεν έχουν τα ευρετήρια από το αρχικό έγγραφο.

συμπέρασμα

Το MongoDB είναι ένα εξαιρετικό εργαλείο βάσης δεδομένων και μπορεί να είναι πραγματικά χρήσιμο για μικρές νεοσύστατες επιχειρήσεις και επιχειρήσεις που θέλουν να επαναλάβουν γρήγορα. Αυτό οφείλεται εν μέρει στους χαλαρούς περιορισμούς και τη συγχώρεση της φύσης.

Χρησιμοποιώ τον εαυτό μου MongoDB στο codedamn - μια πλατφόρμα για προγραμματιστές όπως εσείς όπου όλοι μαθαίνουν και συνδέονται!

Ειρήνη!