Heim Backend-Entwicklung C#.Net-Tutorial Erfahren Sie die vollständigen Schritte zur Integration von MongoDB in den asp.net-Kern

Erfahren Sie die vollständigen Schritte zur Integration von MongoDB in den asp.net-Kern

Jul 18, 2020 pm 04:47 PM
asp.net core mongodb

Erfahren Sie die vollständigen Schritte zur Integration von MongoDB in den asp.net-Kern

1. Einführung und Einführung in MongoDB

Kürzlich Bei der Integration meines eigenen Frameworks habe ich das einfachste CRUD von MongoDBD als Komponente umgestaltet und in das asp.net-Kernprojekt integriert. Natürlich wird in diesem Artikel die Clusterbereitstellung von Mongodb nicht erläutert .

Zunächst sehen wir in der offiziellen Dokumentation von MongoDB, dass MongoDb 2.4 und höher für .Net-Treiber .Net Core 2.0 unterstützt.

Ich denke, jeder sollte mit MongoDB vertraut sein, egal ob er es verwendet oder davon gehört hat.

Verwandte Lernempfehlungen: ASP.NET-Video-Tutorial

1. Was ist Mongodb?

MongoDB ist eine Datenbank, die auf verteilter Dateispeicherung basiert. Sie bietet skalierbare und leistungsstarke Datenspeicherlösungen für Webanwendungen. Sie ist ein Produkt zwischen relationaler Datenbank und nicht relationaler Datenbank. relational. Die funktionsreichste Datenbank. Es ist ein leistungsstarkes Werkzeug zur Datenverarbeitung.

2. Was sind relationale Datenbanken und nicht-relationale Datenbanken?

Relationale Datenbank: Unter den von uns verwendeten SQL Servern, MySQL usw. handelt es sich alle um relationale Datenbanken, und relationale Datenbanken folgen dem ACID-Prinzip und weisen eine strikte Konsistenz auf.

Nicht-relationale Datenbank: Auch NoSQL genannt, wird zum Speichern sehr großer Datenmengen verwendet. Diese Arten der Datenspeicherung erfordern kein festes Modell und können ohne redundante Vorgänge horizontal erweitert werden.

3. RDBMS VS NoSQL

RDBMS:

Hoch organisierte strukturierte Daten

Strukturierte Abfragesprache

Daten und Beziehungen werden in separaten Tabellen gespeichert

Strikte Konsistenz

Grundlegende Transaktionen

NoSQL:

Keine deklarative Abfragesprache

 Schlüssel- Wertepaarspeicher, Spaltenspeicher, Dokumentenspeicher usw.

 Eventuelle Konsistenz

 Unstrukturierte und unvorhersehbare Daten

 CAP-Theorem, hohe Verfügbarkeit, hohe Leistung, hohe Skalierbarkeit

Ich glaube, dass scharfsichtige Schüler, wenn sie darüber sprechen, das CAP-Theorem und die letztendliche Konsistenz bemerkt haben sollten und auf jeden Fall an verteilte Systeme denken werden. Ich gebe Ihnen hier ein großes Lob. Es kann perfekt mit nosql in einem verteilten System kombiniert werden, um unsere Leistung zu verbessern.

4. Stellen Sie einige Konzepte von RDBMS und Mongodb vor, die jedem helfen, es zu verstehen

Übersetzen Sie es wie folgt:

2. Der Asp.net-Kern integriert mongoDB

1 Die Windows-Version des MongoDB-Servers

können Sie von der offiziellen Website herunterladen. Für die visuelle Oberfläche habe ich dann das Tool Robo 3T verwendet. Ein sehr einfaches und schönes Visualisierungstool. Für jeden zu empfehlen.

Nachdem die Installation abgeschlossen ist, sehen Sie den Mongodb-Server im Windows-Dienst

Dann öffnen wir Robo 3T und verbinden unseren Mongodb.

2. Beginnen Sie mit der Konfiguration unseres Mongodb im Projekt

Schritt 1: Ich erstelle eine neue Core2 .0-Klasse Bibliothek

stellt das Nuget-Paket „MongoDB.Driver“ vor.

Erweitern Sie dann die Erweiterungsmethode von Services in Startup.cs

//扩展方法public static class ServiceCollectionExtensions
 {
 public static void AddMongoDB(this IServiceCollection services, IConfiguration configuration)
 {
  services.Configure<Settings>(options =>
  {
  options.ConnectionString = configuration.GetSection("MongoConnection:ConnectionString").Value;
  options.Database = configuration.GetSection("MongoConnection:Database").Value;
  });
 }
 }
Nach dem Login kopieren

Schritt 2: Refaktorieren Sie die CRUD-Klasse, die Mongodb kapselt, und zeigen Sie sie nur in der Suche an und hinzufügen.

public class MongoDBBase
 {
 private readonly IMongoDatabase _database = null;
 public MongoDBBase(string connectionString, string databaseName)
 {
  var client = new MongoClient(connectionString);
  if (client != null)
  {
  _database = client.GetDatabase(databaseName);
  }
 }

 #region SELECT
 /// <summary>
 /// 根据查询条件,获取数据
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="id"></param>
 /// <returns></returns>
 public List<T> GetList<T>(Expression<Func<T, bool>> conditions = null)
 {
  var collection = _database.GetCollection<T>(typeof(T).Name);
  if (conditions != null)
  {
  return collection.Find(conditions).ToList();
  }
  return collection.Find(_ => true).ToList();
 }#endregion

 #region INSERT/// <summary>
 /// 插入多条数据,数据用list表示
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="list"></param>
 /// <returns></returns>
 public List<T> InsertMany<T>(List<T> list)
 {
  var collection = _database.GetCollection<T>(typeof(T).Name);
  collection.InsertMany(list);
  return list;
 }
 #endregion
 }
Nach dem Login kopieren

Schritt 3: Erstellen Sie ein neues asp.net-Core-Webapi-Projekt und verweisen Sie zur Demonstration auf diese Art von Bibliothek

Fügen Sie mongodb zu appsetting.json im hinzu Projektverbindungszeichenfolge: Ich verwende hier einen benutzerdefinierten Datennamen testdb. Beim Einfügen in mongodb werden die Datenbank, die Sammlung und das Dokument automatisch erstellt. Schauen Sie dann nach unten

 "MongoConnection": { //mongodb数据库连接
 "ConnectionString": "mongodb://127.0.0.1:27017",
 "Database": "testdb",
 "IsSSL": true
 },
Nach dem Login kopieren

Schritt 4: Erstellen Sie einen neuen Mongodb-Testcontroller, der die Schnittstelle zum Einfügen einzelner und mehrerer Elemente und zum Abfragen zeigt.

[Produces("application/json")]
 [Route("api/MongoDB/[action]")]
 public class MongoDBController : Controller
 {
  private readonly MongoDBBase _context = null;
  public MongoDBController(IOptions<Settings> settings)
  {
   _context = new MongoDBBase(settings.Value.ConnectionString, settings.Value.Database);
  }
  [HttpGet]
  public IActionResult AddList()
  {
   List<MongoDBPostTest> list = new List<MongoDBPostTest>()
   {
    new MongoDBPostTest()
    {
     Id = "2",
     Body = "Test note 3",
     UpdatedOn = DateTime.Now,
     UserId = 1,
     HeaderImage = new NoteImage
     {
      ImageSize = 10,
      Url = "http://localhost/image1.png",
      ThumbnailUrl = "http://localhost/image1_small.png"
     }
    },
    new MongoDBPostTest()
    {
     Id = "3",
     Body = "Test note 4",
     UpdatedOn = DateTime.Now,
     UserId = 1,
     HeaderImage = new NoteImage
     {
      ImageSize = 14,
      Url = "http://localhost/image3.png",
      ThumbnailUrl = "http://localhost/image3_small.png"
     }
    }
   };

   try
   {
    _context.InsertMany(list);
   }
   catch (Exception ex)
   {

    throw;
   }

   return Ok("成功");
  }

  [HttpGet]
  public Result<List<MongoDBPostTest>> SelectSingle()
  {
   //无条件
   var list = _context.GetList<MongoDBPostTest>();

   //有条件
   //var list = _context.GetList<MongoDBPostTest>(a => a.Id == "1");

   //得到单条数据,无条件
   //var list = _context.GetSingle<MongoDBPostTest>();

   //得到单条数据,有条件
   //var list = _context.GetSingle<MongoDBPostTest>(a => a.Id == "3");

   ObjectId internalId = _context.GetInternalId("5bbf41651d3b66668cbb5bfc");

   var a = _context.GetSingle<MongoDBPostTest>(note => note.Id == "5bbf41651d3b66668cbb5bfc" || note.InternalId == internalId);

   return ResHelper.Suc(1, list, "成功");
  }
}
Nach dem Login kopieren

Testklasse

public class MongoDBPostTest
 {
  [BsonId]
  // standard BSonId generated by MongoDb
  public ObjectId InternalId { get; set; }
  public string Id { get; set; }

  public string Body { get; set; } = string.Empty;

  [BsonDateTimeOptions]
  public DateTime UpdatedOn { get; set; } = DateTime.Now;

  public NoteImage HeaderImage { get; set; }

  public int UserId { get; set; } = 0;
 }

public class NoteImage
 {
  public string Url { get; set; } = string.Empty;
  public string ThumbnailUrl { get; set; } = string.Empty;
  public long ImageSize { get; set; } = 0L;
 }
Nach dem Login kopieren

Schritt 5: Führen Sie das Projekt aus und führen Sie es aus.

Fügen wir mehrere Datenelemente ein und die Ausführung war erfolgreich.

Dann haben wir uns die Datenbank angesehen und festgestellt, dass eine testdb-Datenbank generiert wurde, die unseren Dateninhalt enthält

Dann führen wir die folgende Prüfoperation durch: Geben Sie die Daten zurück, die wir gerade eingefügt haben.

Hinweis: Hier muss eine Falle gelöst werden, nämlich dass die von mongodb gespeicherte Zeit UTC ist wird sich von unserem lokalen unterscheiden. Der Zeitunterschied beträgt 8 Stunden. Daher ist hier eine besondere Bearbeitungszeit erforderlich.

3. Zusammenfassung

An diesem Punkt wurde die einfache Verwendung von Mongodb demonstriert, Sie können es laut offiziellen Angaben erweitern Dokumente und erweitern Sie sie dann auf Folgendes. Sie werden es immer interessanter finden. Vielen Dank an alle für Ihre Unterstützung. Danke schön.

Das obige ist der detaillierte Inhalt vonErfahren Sie die vollständigen Schritte zur Integration von MongoDB in den asp.net-Kern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verbinden Sie Navicat mit Mongodb So verbinden Sie Navicat mit Mongodb Apr 24, 2024 am 11:27 AM

Um mit Navicat eine Verbindung zu MongoDB herzustellen, müssen Sie: Navicat installieren. Eine MongoDB-Verbindung erstellen: a. Geben Sie den Verbindungsnamen, die Hostadresse und den Port ein. b. Geben Sie die Authentifizierungsinformationen ein (falls erforderlich). Überprüfen Sie die Verbindung Speichern Sie die Verbindung

Was nützt net4.0? Was nützt net4.0? May 10, 2024 am 01:09 AM

.NET 4.0 wird zum Erstellen einer Vielzahl von Anwendungen verwendet und bietet Anwendungsentwicklern umfangreiche Funktionen, darunter objektorientierte Programmierung, Flexibilität, leistungsstarke Architektur, Cloud-Computing-Integration, Leistungsoptimierung, umfangreiche Bibliotheken, Sicherheit, Skalierbarkeit, Datenzugriff und Mobilgeräte Entwicklungsunterstützung.

Integration von Java-Funktionen und Datenbanken in serverlose Architektur Integration von Java-Funktionen und Datenbanken in serverlose Architektur Apr 28, 2024 am 08:57 AM

In einer serverlosen Architektur können Java-Funktionen in die Datenbank integriert werden, um auf Daten in der Datenbank zuzugreifen und diese zu bearbeiten. Zu den wichtigsten Schritten gehören: Erstellen von Java-Funktionen, Konfigurieren von Umgebungsvariablen, Bereitstellen von Funktionen und Testen von Funktionen. Durch Befolgen dieser Schritte können Entwickler komplexe Anwendungen erstellen, die nahtlos auf in Datenbanken gespeicherte Daten zugreifen.

So konfigurieren Sie die automatische Expansion von MongoDB auf Debian So konfigurieren Sie die automatische Expansion von MongoDB auf Debian Apr 02, 2025 am 07:36 AM

In diesem Artikel wird vorgestellt, wie MongoDB im Debian -System konfiguriert wird, um eine automatische Expansion zu erzielen. Die Hauptschritte umfassen das Einrichten der MongoDB -Replikat -Set und die Überwachung des Speicherplatzes. 1. MongoDB Installation Erstens stellen Sie sicher, dass MongoDB im Debian -System installiert ist. Installieren Sie den folgenden Befehl: sudoaptupdatesudoaptinstall-emongoDB-org 2. Konfigurieren von MongoDB Replika-Set MongoDB Replikate sorgt für eine hohe Verfügbarkeit und Datenreduktion, was die Grundlage für die Erreichung der automatischen Kapazitätserweiterung darstellt. Start MongoDB Service: SudosystemctlstartMongodsudosysys

Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Wie Sie eine hohe Verfügbarkeit von MongoDB bei Debian gewährleisten Apr 02, 2025 am 07:21 AM

In diesem Artikel wird beschrieben, wie man eine hoch verfügbare MongoDB -Datenbank für ein Debian -System erstellt. Wir werden mehrere Möglichkeiten untersuchen, um sicherzustellen, dass die Datensicherheit und -Dienste weiter funktionieren. Schlüsselstrategie: ReplicaSet: Replicaset: Verwenden Sie Replikaten, um Datenreduktion und automatisches Failover zu erreichen. Wenn ein Master -Knoten fehlschlägt, wählt der Replikate -Set automatisch einen neuen Masterknoten, um die kontinuierliche Verfügbarkeit des Dienstes zu gewährleisten. Datensicherung und Wiederherstellung: Verwenden Sie den Befehl mongodump regelmäßig, um die Datenbank zu sichern und effektive Wiederherstellungsstrategien zu formulieren, um das Risiko eines Datenverlusts zu behandeln. Überwachung und Alarme: Überwachungsinstrumente (wie Prometheus, Grafana) bereitstellen, um den laufenden Status von MongoDB in Echtzeit zu überwachen, und

Navicat -Methode zum Anzeigen von MongoDB -Datenbankkennwort Navicat -Methode zum Anzeigen von MongoDB -Datenbankkennwort Apr 08, 2025 pm 09:39 PM

Es ist unmöglich, das MongoDB -Passwort direkt über Navicat anzuzeigen, da es als Hash -Werte gespeichert ist. So rufen Sie verlorene Passwörter ab: 1. Passwörter zurücksetzen; 2. Überprüfen Sie die Konfigurationsdateien (können Hash -Werte enthalten). 3. Überprüfen Sie Codes (May Hardcode -Passwörter).

Großes Update von Pi Coin: Die PI Bank kommt! Großes Update von Pi Coin: Die PI Bank kommt! Mar 03, 2025 pm 06:18 PM

Pinetwork startet Pibank, eine revolutionäre Mobile -Banking -Plattform! PiNetwork today released a major update on Elmahrosa (Face) PIMISRBank, referred to as PiBank, which perfectly integrates traditional banking services with PiNetwork cryptocurrency functions to realize the atomic exchange of fiat currencies and cryptocurrencies (supports the swap between fiat currencies such as the US dollar, euro, and Indonesian rupiah with cryptocurrencies such as PiCoin, USDT, and USDC). Was ist der Charme von Pibank? Lass uns herausfinden! Die Hauptfunktionen von Pibank: One-Stop-Management von Bankkonten und Kryptowährungsvermögen. Unterstützen Sie Echtzeittransaktionen und übernehmen Sie Biospezies

So öffnen Sie die Tabellenverbindung in Navicat So öffnen Sie die Tabellenverbindung in Navicat Apr 24, 2024 am 09:39 AM

Schritte zum Zugriff auf Tabellenverbindungen über Navicat: 1. Stellen Sie eine Verbindung zur Datenbank her. 2. Navigieren Sie zur gewünschten Datenbank. 3. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie „Tabelle bearbeiten“.

See all articles