Programovanie

Ako pracovať s MongoDB v .NET

MongoDB je populárna, open source, škálovateľná databáza NoSQL, ktorá poskytuje vysokú priepustnosť pre vaše aplikácie založené na dátach. Na rozdiel od relačných databáz, ako sú SQL Server, Oracle a MySQL, ktoré ukladajú údaje do tabuliek podľa rigidnej schémy, MongoDB ukladá údaje do dokumentov s flexibilnou schémou. Existuje veľa takýchto nerelačných databáz vrátane CouchDB, RavenDB a Couchbase. MongoDB sa mi však páči predovšetkým kvôli jeho škálovateľnosti, rýchlosti a možnostiam dynamického dopytovania.

MongoDB používa formát BSON pod kapotou na reprezentáciu dokumentov JSON v jadre úložiska dát. BSON alebo „Binary JSON“ je ľahký a efektívny binárne kódovaný formát na serializáciu údajov, ktorý podporuje rýchly prechod a vyhľadávanie údajov. BSON tiež umožňuje MongoDB podporovať dátové typy - konkrétne int, long, date, floating point a decimal128 - ktoré nie sú zastúpené v JSON.

V dokumente MongoDB sú dokumenty súčasťou zbierok, podobne ako je riadok súčasťou tabuľky v relačnej databáze. Dokument je v podstate kolekcia párov polí a hodnôt, ktoré je tiež možné vnoriť. Upozorňujeme, že hodnotou v MongoDB môže byť dokument, pole dokumentov, pole BSON alebo len typ BSON. Pozrime sa, ako môžeme pracovať s MongoDB pomocou C #.

Nainštalujte si MongoDB a vytvorte nový projekt

Začnite stiahnutím binárnych súborov MongoDB. Rozbaľte binárne súbory do priečinka podľa vášho výberu vo vašom systéme a vytvorte samostatný priečinok (v mojom prípade C: \ data \ db) pre údaje. Potom, ak chcete spustiť MongoDB, prejdite do priečinka, kde je nainštalovaný MongoDB, a spustite mongod príkaz v okne príkazového riadku. To by malo štandardne spustiť MongoDB na porte 27017.

Vytvorte nový projekt konzolovej aplikácie v Visual Studio a nainštalujte balík MongoDB.Driver prostredníctvom konzoly Správca balíkov NuGet pomocou nasledujúceho príkazu.

PM> Install-Package MongoDB.Driver

Týmto sa naraz nainštalujú nasledujúce tri balíčky NuGet.

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

Pripojte sa k svojej inštancii MongoDB

Ak sa chcete pripojiť k inštancii MongoDB na jej predvolenom porte 27017, môžete použiť predvolený konštruktor súboru MongoClient triedy, ako je uvedené nižšie.

var klient = nový MongoClient ();

Teraz zvážte nasledujúcu triedu. Túto triedu použijeme na ukladanie údajov v MongoDB.

verejná trieda Autor

    {

public int Id {get; sada; }

verejný reťazec FirstName {get; sada; }

verejný reťazec Priezvisko {get; sada; }

    }

Vytvorte databázu a zbierku

Nasledujúci zoznam kódov ukazuje, ako môžete vytvoriť databázu a kolekciu v nej a potom vložiť objekt do kolekcie.

static void Main (reťazec [] args)

    {           

var connectionString;

var klient = nový MongoClient (connectionString);

IMongoDatabase db = client.GetDatabase (“”);

Autor autor = nový Autor

        {

Id = 1,

Krstné meno,

Priezvisko

        };

var collection = db.GetCollection („autori“);

collection.InsertOne (autor);

Console.Read ();

    }

Váš program by mal obsahovať nasledujúce menné priestory.

pomocou MongoDB.Bson;

pomocou MongoDB.Driver;

Teraz si pozrite Hlavný v zozname kódov vyššie. Upozorňujeme, že nasledujúci príkaz vytvorí novú databázu s názvom ”” ak pod týmto menom neexistuje.

IMongoDatabase db = client.GetDatabase (“”);

Podobne nasledujúci príkaz vytvára novú kolekciu súborov „Autor“ objekty, ak žiadne neexistujú. V obidvoch prípadoch GetCollection metóda vráti inštanciu kolekcie.

var collection = db.GetCollection („autori“);

Pridajte dokumenty do zbierky

Ďalej vytvoríme inštanciu súboru Autor triedy a priraďovať k nej hodnoty Krstné meno a Priezvisko vlastnosti.

Autor autor = nový Autor

{

Id = 1,

Krstné meno,

Priezvisko

};

Pomocou príkazu nižšie vložte inštanciu súboru Autor triedy do zbierky.

collection.InsertOne (autor);

Upozorňujeme, že pomocou znaku môžete vložiť viac dokumentov naraz VložiťMnohé alebo InsertManyAsync metóda. Nasledujúci zoznam kódov ilustruje, ako VložiťMnohé možno použiť metódu.

pomocou systému;

pomocou System.Collections.Generic;

pomocou MongoDB.Bson;

pomocou MongoDB.Driver;

static void Main (reťazec [] args)

    {           

var connectionString;

var klient = nový MongoClient (connectionString);

IMongoDatabase db = client.GetDatabase (“”);

var collection = db.GetCollection („Autori“);

var author1 = nový BsonDocument

        {

{”Id”, 1},

{”Firstname”, “Joydip”},

{„Priezvisko“, „Kanjilal“}

        };

var author2 = nový BsonDocument

        {

{”Id”, 2},

{„Firstname“, „Steve“},

{„Priezvisko“, „Smith“}

        };

var author3 = nový BsonDocument

        {

{”Id”, 3},

{„Meno“, „Gary“},

{„Priezvisko“, „Stevens“}

        };

var autori = nový Zoznam ();

autori.Pridať (autor1);

autori.Pridať (autor2);

autori.Pridať (autor3);

zbierka.InsertMany (autori);

Console.Read ();

    }

The BsonDocument triedy v balíku MongoDB.Bson sa používa na predstavenie dokumentu BSON. Nasledujúci úryvok kódu ukazuje, ako môžete zobraziť názvy databáz dostupných v prípade servera MongoDB bežiaceho vo vašom systéme.

var connectionString;

var klient = nový MongoClient (connectionString);

pomocou (var cursor = client.ListDatabases ())

  {

var databaseDocuments = cursor.ToList ();

foreach (var db v databaseDocuments)

      {

Console.WriteLine (db [„meno“]. ToString ());

      }

  }

Po vykonaní vyššie uvedeného fragmentu kódu uvidíte názov databázy (t. J. „) uvedené v okne konzoly. Môžete tiež použiť asynchrónnu metódu, ListDatabasesAsync, aby ste uviedli zoznam názvov databáz, ako je uvedené v útržku kódu uvedenom nižšie.

súkromná statická asynchrónna úloha DisplayDatabaseNames ()

    {

var connectionString;

var klient = nový MongoClient (connectionString);

skús

        {

using (var cursor = await client.ListDatabasesAsync ())

            {

await cursor.ForEachAsync (document => Console.WriteLine (document.ToString ()));

            }               

        }

chytiť

        {

// Sem napíš svoj vlastný kód na spracovanie výnimiek

        }

    }

MongoDB je populárna NoSQL databáza, ktorá má flexibilný dátový model a ladne škáluje. MongoDB poskytuje podporu pre horizontálnu škálovateľnosť pomocou techniky známej ako sharding. O pokročilejších koncepciách v MongoDB budem diskutovať v budúcich príspevkoch tu. Do tej doby si možno budete chcieť prečítať ovládač MongoDB C # v dokumentácii MongoDB.

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