MongoDB

MongoDB ist die führende Open-Source, Document Datenbank die für einfache Entwicklung und Skalierung aber auch für Big Data Szenarien entwickelt wurde.

C# und MongoDB - Dokumente erstellen

Marc-David Militz
Expert
  • Artikel von Ken W. Alger

    • englischer Originalartikel
      https://www.mongodb.com/blog/post/quick-start-c-sharp-and-mongodb--creating-documents
      Übersetzung mit freundlicher Genehmigung von MongoDB


      In einem früheren Beitrag haben wir gezeigt, wie man C# und MongoDB miteinander verbindet.
      Es ist ziemlich einfach, mit dem MongoDB.Driver von NuGet eine Verbindung zu einem MongoDB-Server herzustellen.
      Bei dieser Blogserie wird C# verwendet, um eine Verbindung zu einem MongoDB Atlas-Cluster herzustellen, auf dem die kostenlosen Demo-Daten installiert sind.
      Sehen wir uns an, wie Sie mit C# Operationen in MongoDB Create-Operationen ausführen können, nachdem eine Verbindung hergestellt wurde.

      • Tools & Versionen

        • Hier eine Liste der Die Tools und Versionen, die ich für die Beispiele benötigt werden.

          - MongoDB Atlas mit einem kostenlosen M0 Cluster
          - MongoDB Beispiel Dataset geladen, spezifisch das "sample_training" und "grades" Dataset.
          - Windows 10
          - Visual Studio Community 2019
          - NuGet Pakete
          - MongoDB C# Driver (MongoDB.Driver), version 2.9.1
          - MongoDB BSON Library (MongoDB.Bson), version 2.9.1

          • Daten

            • MongoDB speichert Daten in JSON-Dokumenten.
              Eigentlich werden sie als Binary JSON (BSON)-Objekte auf der Festplatte gespeichert, aber das ist ein Thema für einen anderen Beitrag.
              In unserem Beispieldatensatz gibt es eine Datenbank "sample_training" mit einer Collection "grades".
              So sieht ein Beispieldokument in dieser Sammlung aus:
              {
              "_id": { "$oid":"56d5f7eb604eb380b0d8d8ce" },
              "student_id":{ "$numberDouble": "0" },
              "scores":[
              {"type":"exam","score": {"$numberDouble": "78.40446309504266" }},
              {"type":"quiz","score": {"$numberDouble": "73.36224783231339" }},
              {"type":"homework","score": {"$numberDouble": "46.980982486720535" }},
              {"type":"homework","score": {"$numberDouble": "76.67556138656222" }}
              ],
              "class_id":{"$numberDouble": "339"}
              }


              • Herstellen einer Verbindung zu einer bestimmten Collection

                • In dieser Collection befinden sich die Daten von 10.000 Schülern, 0-9.999.
                  Fügen wir einen weiteren Datensatz hinzu, indem wir C# verwenden.
                  Dazu benötigen wir ein Paket von NuGet, "MongoDB.Bson".
                  Wir erstellen eine neue Solution in Visual Studio und bezeichne sie als "MongoDBCRUDExample".
                  Dann müssen wir die Pakete "MongoDB.Bson" und "MongoDB.Driver" installieren und die von MongoDB Atlas bereitgestellte Verbindungszeichenfolge verwenden.
                  Als Nächstes greifen wir auf unsere spezifische Datenbank und Collection, "sample_training" bzw. "grade" zu.
                  using System;
                  using MongoDB.Bson;
                  using MongoDB.Driver;

                  namespace MongoDBCRUDExample {
                  class Program {
                  static void Main (string[] args) {
                  MongoClient dbClient = new MongoClient ( << YOUR ATLAS CONNECTION STRING >>);

                  var database = dbClient.GetDatabase ("sample_training");
                  var collection = database.GetCollection<BsonDocument> ("grades");

                  }
                  }
                  }


                  • Erstellen eines BSON-Dokuments

                    • Die Erfassungsvariable ist nun unser zentraler Bezugspunkt zu unseren Daten.
                      Da wir beim Zuweisen unserer Sammlungsvariablen ein Bson-Dokument verwenden, haben wir angegeben, dass wir kein vordefiniertes Schema verwenden werden.
                      Damit nutzen wir die Leistungsfähigkeit und Flexibilität des Dokumentenmodells von MongoDB.
                      Wir könnte ein einfaches altes C#-Objekt (POCO) definieren, um ein Schema genauer zu definieren.
                      Diese Option können wir uns in einem zukünftigen Beitrag ansehen.
                      Im Moment erstelle ich ein neues Bson-Document zum Einfügen in die Datenbank.
                      var document = new BsonDocument { { "student_id", 10000 }, {
                      "scores",
                      new BsonArray {
                      new BsonDocument { { "type", "exam" }, { "score", 88.12334193287023 } },
                      new BsonDocument { { "type", "quiz" }, { "score", 74.92381029342834 } },
                      new BsonDocument { { "type", "homework" }, { "score", 89.97929384290324 } },
                      new BsonDocument { { "type", "homework" }, { "score", 82.12931030513218 } }
                      }
                      }, { "class_id", 480 }
                      };


                      • Create Operation

                        • Um das Dokument in der Collection "sample_training.grades" zu erstellen, können wir eine Insert-Operation ausführen.
                          collection.InsertOne(document);

                          Wenn wir diesen Insert-Befehl asynchron ausführen wollen, ist der MongoDB C#-Treiber vollständig asynchron kompatibel.
                          Der Aufruf würde dann so aussehen:
                          await collection.InsertOneAsync (document);

                          Wenn wir mehrere Dokumente gleichzeitig einfügen wollen, haben wir in MongoDB auch diese Möglichkeit.
                          Dies lässt sich mit der "InsertMany"-Methode oder der "InsertManyAsync"-Methode sehr einfach machen.

                          • Zusammenfassung

                            • Wir haben nun gesehen, wie man ein BSON-Dokument mit C# strukturiert und es dann in einer MongoDB-Datenbank einfügt.
                              Der MongoDB C#-Treiber erleichtert die Verwendung der Methoden InsertOne(), InsertOneAsync(), InsertMany() oder InsertManyAsync().
                              Wie bereits erwähnt, ist die Verwendung eines BSON-Dokuments praktisch, wenn kein Schema definiert ist.
                              Häufiger wird das Schema jedoch in unserem Code und nicht in der Datenbank selbst definiert.
                              In einem der nächsten Beiträge werden wir uns die Zuordnung von BSON-Daten zu einer C#-Klasse ansehen.

Latest member activities

Tags

Recommend this community post