Προγραμματισμός

Πώς να εργαστείτε με το MongoDB στο .NET

Το MongoDB είναι μια δημοφιλής, ανοιχτής πηγής, βάση δεδομένων NoSQL με κλίμακα που παρέχει υψηλή απόδοση για τις εφαρμογές που βασίζονται σε δεδομένα. Σε αντίθεση με τις σχεσιακές βάσεις δεδομένων, όπως SQL Server, Oracle και MySQL, οι οποίες αποθηκεύουν δεδομένα σε πίνακες σύμφωνα με ένα άκαμπτο σχήμα, το MongoDB αποθηκεύει δεδομένα σε έγγραφα με ευέλικτο σχήμα. Υπάρχουν πολλές τέτοιες μη σχετικές βάσεις δεδομένων, συμπεριλαμβανομένων των CouchDB, RavenDB και Couchbase. Ωστόσο, μου αρέσει το MongoDB κυρίως λόγω της δυνατότητας κλιμάκωσης, της ταχύτητας και των δυναμικών ερωτημάτων.

Το MongoDB χρησιμοποιεί τη μορφή BSON κάτω από την κουκούλα για να αντιπροσωπεύει τα έγγραφα JSON στην καρδιά του χώρου αποθήκευσης δεδομένων. Το BSON ή το "Binary JSON" είναι μια ελαφριά και αποτελεσματική μορφή σειριοποίησης δεδομένων με δυαδική κωδικοποίηση που υποστηρίζει γρήγορη διέλευση δεδομένων και αναζητήσεις. Το BSON επιτρέπει επίσης στο MongoDB να υποστηρίζει τύπους δεδομένων - δηλαδή int, long, date, floating point και δεκαδικό128 - που δεν αντιπροσωπεύονται στο JSON.

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

Εγκαταστήστε το MongoDB και δημιουργήστε ένα νέο έργο

Ξεκινήστε κατεβάζοντας τα δυαδικά αρχεία του MongoDB. Αποσυμπιέστε τα δυαδικά αρχεία σε ένα φάκελο της επιλογής σας στο σύστημά σας και δημιουργήστε έναν ξεχωριστό φάκελο (στην περίπτωσή μου C: \ data \ db) για τα δεδομένα. Στη συνέχεια, για να ξεκινήσετε το MongoDB, μεταβείτε στο φάκελο όπου είναι εγκατεστημένο το MongoDB και εκτελέστε το Μόγκοντ εντολή στο παράθυρο της γραμμής εντολών. Αυτό θα πρέπει να ξεκινήσει το MongoDB στη θύρα 27017 από προεπιλογή.

Δημιουργήστε ένα νέο έργο εφαρμογής κονσόλας στο Visual Studio και εγκαταστήστε το πακέτο MongoDB.Driver μέσω του NuGet Package Manager Console με την ακόλουθη εντολή.

PM> Install-Package MongoDB.Driver

Αυτό θα εγκαταστήσει τα ακόλουθα τρία πακέτα NuGet ταυτόχρονα.

  • MongoDB.Bson
  • MongoDB.Driver.Core
  • MongoDB.Driver

Συνδεθείτε στην παρουσία σας MongoDB

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

var client = νέο MongoClient ();

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

δημόσια τάξη Συγγραφέας

    {

δημόσιο int Id {get; σειρά; }

δημόσια συμβολοσειρά FirstName {get; σειρά; }

δημόσια συμβολοσειρά LastName {get; σειρά; }

    }

Δημιουργήστε μια βάση δεδομένων και μια συλλογή

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

static void Main (συμβολοσειρά [] args)

    {           

var connectionString;

var client = νέο MongoClient (connectionString);

IMongoDatabase db = client.GetDatabase (“”);

Συγγραφέας συγγραφέας = νέος Συγγραφέας

        {

Αναγνωριστικό = 1,

Ονομα,

Επίθετο

        };

var συλλογή = db.GetCollection ("συγγραφείς");

συλλογή.InsertOne (συγγραφέας);

Κονσόλα. Διαβάστε ();

    }

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

χρησιμοποιώντας το MongoDB.Bson;

χρησιμοποιώντας το MongoDB.Driver;

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

IMongoDatabase db = client.GetDatabase (“”);

Ομοίως, η ακόλουθη δήλωση δημιουργεί μια νέα συλλογή "Συντάκτης" Αν δεν υπάρχει κανένα. Σε κάθε περίπτωση, το GetCollection Η μέθοδος επιστρέφει μια παρουσία συλλογής.

var συλλογή = db.GetCollection ("συγγραφείς");

Προσθέστε έγγραφα στη συλλογή

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

Συγγραφέας συγγραφέας = νέος Συγγραφέας

{

Αναγνωριστικό = 1,

Ονομα,

Επίθετο

};

Χρησιμοποιήστε την παρακάτω δήλωση για να εισαγάγετε την παρουσία του Συντάκτης τάξη στη συλλογή.

συλλογή.InsertOne (συγγραφέας);

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

χρησιμοποιώντας το Σύστημα;

χρησιμοποιώντας System.Collections.Generic;

χρησιμοποιώντας το MongoDB.Bson;

χρησιμοποιώντας το MongoDB.Driver;

static void Main (συμβολοσειρά [] args)

    {           

var connectionString;

var client = νέο MongoClient (connectionString);

IMongoDatabase db = client.GetDatabase (“”);

var συλλογή = db.GetCollection ("Συγγραφείς");

var author1 = νέο BsonDocument

        {

{"Id", 1},

{"Firstname", "Joydip"},

{"Επώνυμο", "Kanjilal"}

        };

var author2 = νέο BsonDocument

        {

{"Id", 2},

{"Όνομα", "Steve"},

{"Επώνυμο", "Smith"}

        };

var author3 = νέο BsonDocument

        {

{"Id", 3},

{"Firstname", "Gary"},

{"Επώνυμο", "Stevens"}

        };

var author = νέα λίστα ();

συγγραφείς. Προσθήκη (author1);

συγγραφείς. Προσθήκη (author2);

συγγραφείς. Προσθήκη (author3);

συλλογή.InsertMany (συγγραφείς);

Κονσόλα. Διαβάστε ();

    }

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

var connectionString;

var client = νέο MongoClient (connectionString);

χρησιμοποιώντας (var cursor = client.ListDatabases ())

  {

var databaseDocuments = κέρσορας. ToList ();

foreach (var db στη βάση δεδομένωνDocuments)

      {

Console.WriteLine (db [“name”]. ToString ());

      }

  }

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

private static async Task DisplayDatabaseNames ()

    {

var connectionString;

var client = νέο MongoClient (connectionString);

δοκιμάστε

        {

χρησιμοποιώντας (var δρομέας = αναμονή πελάτη.ListDatabasesAsync ())

            {

περιμένετε δρομέα.ForEachAsync (document => Console.WriteLine (document.ToString ()));

            }               

        }

σύλληψη

        {

// Γράψτε τον δικό σας κωδικό εδώ για να χειριστείτε τις εξαιρέσεις

        }

    }

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

$config[zx-auto] not found$config[zx-overlay] not found