Λάβετε μια σειρά από ερωτήματα και λειτουργίες MongoDB με τη βοήθεια αυτού του εύχρηστου οδηγού.
Η MongoDB είναι μια από τις πιο επιθυμητές και αξιοθαύμαστες βάσεις δεδομένων NoSQL για επαγγελματική ανάπτυξη. Η ευελιξία, η επεκτασιμότητα και η ικανότητά του να χειρίζεται μεγάλους όγκους δεδομένων το καθιστούν κορυφαία επιλογή για σύγχρονες εφαρμογές. Εάν θέλετε να μάθετε τακτικά ερωτήματα και λειτουργίες του MongoDB, βρίσκεστε στο σωστό μέρος.
Είτε θέλετε να ανακτήσετε και να χειριστείτε αποτελεσματικά δεδομένα, να εφαρμόσετε ισχυρά μοντέλα δεδομένων ή να δημιουργήσετε αποκριτικά εφαρμογές, η απόκτηση βαθιάς κατανόησης των κοινών ερωτημάτων και λειτουργιών MongoDB αναμφίβολα θα βελτιώσει δεξιότητες.
1. Δημιουργία ή εναλλαγή βάσεων δεδομένων
Η δημιουργία μιας βάσης δεδομένων τοπικά μέσω του κελύφους MongoDB είναι απλή, ειδικά αν έχετε δημιουργήσει ένα απομακρυσμένο σύμπλεγμα. Μπορείτε να δημιουργήσετε μια νέα βάση δεδομένων στο MongoDB με το χρήση εντολή:
use db_name
Ενώ η παραπάνω εντολή δημιουργεί μια νέα βάση δεδομένων, μπορείτε να τη χρησιμοποιήσετε για να μεταβείτε σε μια υπάρχουσα βάση δεδομένων χωρίς να δημιουργήσετε μια νέα από την αρχή.
2. Απόθεση βάσης δεδομένων
Πρώτα, μεταβείτε στη βάση δεδομένων που θέλετε να αποθέσετε χρησιμοποιώντας το χρήση εντολή όπως έγινε προηγουμένως. Στη συνέχεια αποθέστε τη βάση δεδομένων χρησιμοποιώντας το drop Database() εντολή:
use db_name
db.dropDatabase()
3. Δημιουργήστε μια Συλλογή
Για να δημιουργήσετε μια συλλογή, μεταβείτε στη βάση δεδομένων προορισμού. Χρησιμοποιήστε το createCollection() λέξη-κλειδί για να δημιουργήσετε μια νέα συλλογή MongoDB:
db.createCollection("collection_name")
Αντικαθιστώ όνομα_συλλογής με το όνομα της συλλογής που επιλέξατε.
4. Εισαγωγή εγγράφου σε μια συλλογή
Κατά την αποστολή δεδομένων σε μια συλλογή, μπορείτε να εισαγάγετε ένα μεμονωμένο έγγραφο ή μια σειρά εγγράφων.
Για να εισαγάγετε ένα μόνο έγγραφο:
db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})
Μπορείτε επίσης να χρησιμοποιήσετε την παραπάνω μέθοδο για να εισαγάγετε μια σειρά εγγράφων με ένα αναγνωριστικό:
db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])
Για να εισαγάγετε πολλά έγγραφα ταυτόχρονα, με το καθένα να έχει ξεχωριστά αναγνωριστικά, χρησιμοποιήστε το εισάγετε Πολλά λέξη-κλειδί:
db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])
5. Λάβετε όλα τα έγγραφα από μια συλλογή
Μπορείτε να ρωτήσετε όλα τα έγγραφα από μια συλλογή χρησιμοποιώντας το εύρημα() λέξη-κλειδί:
db.collection_name.find()
Το παραπάνω επιστρέφει όλα τα έγγραφα μέσα στην καθορισμένη συλλογή:
Μπορείτε επίσης να περιορίσετε τα επιστρεφόμενα δεδομένα σε έναν συγκεκριμένο αριθμό. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να λάβετε μόνο τα δύο πρώτα έγγραφα:
db.collection_name.find().limit(2)
6. Φιλτράρισμα εγγράφων σε μια συλλογή
Υπάρχουν πολλοί τρόποι φιλτραρίσματος εγγράφων στο MongoDB. Εξετάστε τα ακόλουθα δεδομένα, για παράδειγμα:
Εάν ζητάτε μόνο ένα συγκεκριμένο πεδίο σε ένα έγγραφο, χρησιμοποιήστε το εύρημα μέθοδος:
db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})
Το παραπάνω επιστρέφει όλα τα έγγραφα όπου η τιμή του Μου αρέσει είναι Wordle. Εξάγει μόνο τα ονόματα και αγνοεί το αναγνωριστικό εγγράφου.
Μπορείτε επίσης να φιλτράρετε μια συλλογή με έναν αριθμητικό παράγοντα. Ας υποθέσουμε ότι θέλετε να λάβετε τα ονόματα όλων των χρηστών άνω των 21 ετών, χρησιμοποιήστε το $gt χειριστής:
db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})
Η έξοδος μοιάζει με αυτό:
Δοκιμάστε να αντικαταστήσετε εύρημα με βρες ένα για να δούμε τι γίνεται. Ωστόσο, υπάρχουν πολλές άλλες λέξεις-κλειδιά φιλτραρίσματος:
- $lt: Όλες οι τιμές μικρότερες από την καθορισμένη.
- $gte: Τιμές ίσες ή μεγαλύτερες από την καθορισμένη.
- $lte: Τιμές που είναι μικρότερες ή ίσες με την καθορισμένη.
- $ισ: Λαμβάνει όλες τις τιμές ίσες με την καθορισμένη.
- $ne: Όλες οι τιμές δεν είναι ίσες με την καθορισμένη.
- $σε: Χρησιμοποιήστε το όταν κάνετε ερωτήσεις με βάση έναν πίνακα. Λαμβάνει όλες τις τιμές που ταιριάζουν με οποιοδήποτε από τα στοιχεία του πίνακα. ο $9 λέξη-κλειδί κάνει το αντίθετο.
7. Ταξινόμηση ερωτημάτων
Η ταξινόμηση βοηθά στη διευθέτηση του ερωτήματος με μια συγκεκριμένη σειρά. Μπορείτε να ταξινομήσετε με φθίνουσα ή αύξουσα σειρά. Λάβετε υπόψη ότι η ταξινόμηση απαιτεί αριθμητική αναφορά.
Για παράδειγμα, για ταξινόμηση με αύξουσα σειρά:
db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})
Για να ταξινομήσετε το παραπάνω ερώτημα με φθίνουσα σειρά, αντικαταστήστε το "1" με το "-1."
db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})
8. Ενημέρωση εγγράφου
Οι ενημερώσεις MongoDB απαιτούν από τους ατομικούς τελεστές να καθορίσουν πώς θέλετε να γίνει η ενημέρωση. Ακολουθεί μια λίστα με τους συνήθως χρησιμοποιούμενους ατομικούς τελεστές που μπορείτε να αντιστοιχίσετε με ένα ερώτημα ενημέρωσης:
- $set: Προσθέστε ένα νέο πεδίο ή αλλάξτε ένα υπάρχον πεδίο.
- $πιέστε: Εισαγάγετε ένα νέο στοιχείο σε έναν πίνακα. Συνδυάστε το με το $ το καθένα χειριστή για την εισαγωγή πολλών στοιχείων ταυτόχρονα.
- $τραβήξει: Αφαιρέστε ένα στοιχείο από έναν πίνακα. Χρησιμοποιήστε το με $σε για να αφαιρέσετε πολλά αντικείμενα ταυτόχρονα.
- $unset: Αφαιρέστε ένα πεδίο από ένα έγγραφο.
Για να ενημερώσετε ένα έγγραφο και να προσθέσετε ένα νέο πεδίο, για παράδειγμα:
db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})
Το παραπάνω ενημερώνει το καθορισμένο έγγραφο όπως φαίνεται:
Η κατάργηση του πεδίου email είναι απλή με το $unset χειριστής:
db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})
Εξετάστε τα ακόλουθα δείγματα δεδομένων:
Μπορείτε να εισαγάγετε ένα στοιχείο στο υπάρχον είδη πεδίο πίνακα χρησιμοποιώντας το $πιέστε χειριστής:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})
Εδώ είναι η έξοδος:
Χρησιμοποιήστε το $ το καθένα χειριστής για να εισάγει πολλά στοιχεία ταυτόχρονα:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})
Εδώ είναι η έξοδος:
Όπως αναφέρθηκε, το $τραβήξει Ο χειριστής αφαιρεί ένα στοιχείο από έναν πίνακα:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})
Τα ενημερωμένα δεδομένα μοιάζουν με αυτό:
Συμπεριλάβετε το $σε λέξη-κλειδί για την αφαίρεση πολλών στοιχείων σε έναν πίνακα με μια κίνηση:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})
9. Διαγράψτε ένα έγγραφο ή ένα πεδίο
ο deleteOne ή διαγραφή πολλών λέξη-κλειδί απορρίπτει ένα έγγραφο από μια συλλογή. Χρήση deleteOne για να αφαιρέσετε ένα έγγραφο με βάση ένα καθορισμένο πεδίο:
db.collection_name.deleteOne({"Name":"IDNoble"})
Εάν θέλετε να διαγράψετε πολλά έγγραφα με κοινά κλειδιά, χρησιμοποιήστε το διαγραφή πολλών αντι αυτου. Το παρακάτω ερώτημα διαγράφει όλα τα έγγραφα που περιέχουν Σκάκι ως τους Μου αρέσει.
db.collection.deleteMany({"Likes":"Chess"})
10. Λειτουργία ευρετηρίασης
Η ευρετηρίαση βελτιώνει την απόδοση των ερωτημάτων βελτιστοποιώντας τον αριθμό των εγγράφων που χρειάζεται να σαρώσει η MongoDB. Συχνά είναι καλύτερο να δημιουργείτε ένα ευρετήριο σε πεδία που ζητάτε πιο συχνά.
Η ευρετηρίαση MongoDB είναι παρόμοια με αυτήν που κάνετε χρησιμοποιήστε ευρετήρια για τη βελτιστοποίηση των ερωτημάτων SQL. Για παράδειγμα, για να δημιουργήσετε έναν αύξοντα δείκτη στο Ονομα πεδίο:
db.collection.createIndex({"Name":1})
Για να καταχωρήσετε τα ευρετήρια σας:
db.collection.getIndexes()
Τα παραπάνω είναι μόνο ένα προοίμιο. Υπάρχουν πολλές άλλες μέθοδοι για δημιουργώντας ένα ευρετήριο στο MongoDB.
11. Συσσωμάτωση
Ο αγωγός συγκέντρωσης, μια βελτιωμένη έκδοση του MapReduce, σας επιτρέπει να εκτελείτε και να αποθηκεύετε σύνθετους υπολογισμούς μέσα από το MongoDB. Σε αντίθεση με το MapReduce, το οποίο απαιτεί χωριστή εγγραφή του χάρτη και των λειτουργιών μείωσης Λειτουργίες JavaScript, η συγκέντρωση είναι απλή και χρησιμοποιεί μόνο ενσωματωμένες μεθόδους MongoDB.
Εξετάστε τα ακόλουθα δεδομένα πωλήσεων, για παράδειγμα:
Χρησιμοποιώντας τη συνάθροιση του MongoDB, μπορείτε να υπολογίσετε και να αποθηκεύσετε τον συνολικό αριθμό των προϊόντων που πωλήθηκαν για κάθε κατηγορία ως εξής:
db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])
Το παραπάνω ερώτημα επιστρέφει τα εξής:
Κύρια ερωτήματα MongoDB
Το MongoDB προσφέρει πολλές μεθόδους αναζήτησης, συμπεριλαμβανομένων λειτουργιών για τη βελτίωση της απόδοσης των ερωτημάτων. Ανεξάρτητα από τη γλώσσα προγραμματισμού σας, οι παραπάνω δομές ερωτημάτων είναι στοιχειώδεις για την αλληλεπίδραση με μια βάση δεδομένων MongoDB.
Ωστόσο, ενδέχεται να υπάρχουν κάποιες αποκλίσεις στις βασικές συντακτικές. Για παράδειγμα, ενώ ορισμένες γλώσσες προγραμματισμού όπως η Python αναγνωρίζουν περιπτώσεις φιδιών, άλλες, συμπεριλαμβανομένης της JavaScript, χρησιμοποιούν την θήκη καμήλας. Βεβαιωθείτε ότι ερευνάτε τι λειτουργεί για την τεχνολογία που έχετε επιλέξει.