Programování

Jak pracovat s MongoDB v .NET

MongoDB je populární, open source, škálovatelná databáze NoSQL, která poskytuje vysokou propustnost pro vaše aplikace založené na datech. Na rozdíl od relačních databází, jako jsou SQL Server, Oracle a MySQL, které ukládají data do tabulek podle rigidního schématu, ukládá MongoDB data v dokumentech s flexibilním schématem. Existuje mnoho takových nerelačních databází, včetně CouchDB, RavenDB a Couchbase. MongoDB se mi však líbí především kvůli jeho škálovatelnosti, rychlosti a schopnostem dynamického dotazování.

MongoDB používá formát BSON pod kapotou k reprezentaci dokumentů JSON v srdci úložiště dat. BSON nebo „Binary JSON“ je odlehčený a efektivní binárně kódovaný formát serializace dat, který podporuje rychlé procházení dat a vyhledávání. BSON také umožňuje MongoDB podporovat datové typy - jmenovitě int, long, date, floating point a decimal128 - které nejsou reprezentovány v JSON.

V MongoDB jsou dokumenty součástí sbírek, stejně jako je řádek součástí tabulky v relační databázi. Dokument je v podstatě kolekce párů polí a hodnot, které lze také vnořit. Hodnota v MongoDB může být dokument, pole dokumentů, pole BSON nebo jen typ BSON. Podívejme se, jak můžeme pracovat s MongoDB pomocí C #.

Nainstalujte MongoDB a vytvořte nový projekt

Začněte stažením binárních souborů MongoDB. Rozbalte binární soubory do složky podle vašeho výběru ve vašem systému a vytvořte samostatnou složku (v mém případě C: \ data \ db) pro data. Poté spusťte MongoDB, přejděte do složky, kde je nainstalován MongoDB, a spusťte mongod příkaz v okně příkazového řádku. To by mělo ve výchozím nastavení spustit MongoDB na portu 27017.

Vytvořte nový projekt konzolové aplikace v sadě Visual Studio a nainstalujte balíček MongoDB.Driver prostřednictvím konzoly Správce balíčků NuGet pomocí následujícího příkazu.

PM> Instalovat balíček MongoDB.Driver

Tím se nainstalují následující tři balíčky NuGet najednou.

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

Připojte se k vaší instanci MongoDB

Chcete-li se připojit k instanci MongoDB na jejím výchozím portu 27017, můžete použít výchozí konstruktor MongoClient třída, jak je uvedeno níže.

var client = new MongoClient ();

Nyní zvažte následující třídu. Tuto třídu použijeme k ukládání dat v MongoDB.

veřejná třída Autor

    {

public int Id {get; soubor; }

public string FirstName {get; soubor; }

veřejný řetězec Příjmení {get; soubor; }

    }

Vytvořte databázi a kolekci

Následující výpis kódu ukazuje, jak můžete vytvořit databázi a kolekci uvnitř a poté vložit objekt do kolekce.

static void Main (řetězec [] args)

    {           

var connectionString;

var client = new MongoClient (connectionString);

IMongoDatabase db = client.GetDatabase (“”);

Autor autor = nový Autor

        {

Id = 1,

Jméno,

Příjmení

        };

var collection = db.GetCollection („autoři“);

collection.InsertOne (autor);

Console.Read ();

    }

Všimněte si, že následující jmenné prostory by měly být součástí vašeho programu.

pomocí MongoDB.Bson;

pomocí MongoDB.Driver;

Nyní se podívejte na Hlavní metoda v seznamu kódů výše. Všimněte si, že následující příkaz vytvoří novou databázi s názvem ”” pokud pod tímto jménem neexistuje.

IMongoDatabase db = client.GetDatabase (“”);

Podobně následující příkaz vytvoří novou kolekci "Autor" objekty, pokud žádné neexistují. V obou případech GetCollection metoda vrací instanci kolekce.

var collection = db.GetCollection („autoři“);

Přidejte dokumenty do sbírky

Dále vytvoříme instanci Autor třídy a přiřadit k ní hodnoty Jméno a Příjmení vlastnosti.

Autor autor = nový Autor

{

Id = 1,

Jméno,

Příjmení

};

Pomocí níže uvedeného příkazu vložte instanci souboru Autor třídy do sbírky.

collection.InsertOne (autor);

Pamatujte, že můžete vložit více dokumentů současně pomocí Vložit Mnoho nebo InsertManyAsync metoda. Následující výpis kódu ukazuje, jak Vložit Mnoho lze použít metodu.

pomocí systému;

pomocí System.Collections.Generic;

pomocí MongoDB.Bson;

pomocí MongoDB.Driver;

static void Main (řetězec [] args)

    {           

var connectionString;

var client = new MongoClient (connectionString);

IMongoDatabase db = client.GetDatabase (“”);

var collection = db.GetCollection („Autoři“);

var author1 = nový BsonDocument

        {

{”Id”, 1},

{„Křestní jméno“, „Joydip“},

{„Příjmení“, „Kanjilal“}

        };

var author2 = nový BsonDocument

        {

{”Id”, 2},

{„Křestní jméno“, „Steve“},

{„Příjmení“, „Smith“}

        };

var author3 = nový BsonDocument

        {

{”Id”, 3},

{„Křestní jméno“, „Gary“},

{„Příjmení“, „Stevens“}

        };

var autoři = nový List ();

autoři.Přidat (autor1);

autoři.Přidat (autor2);

autoři.Přidat (autor3);

collection.InsertMany (autoři);

Console.Read ();

    }

The BsonDocument třída v balíčku MongoDB.Bson se používá k reprezentaci dokumentu BSON. Následující fragment kódu ukazuje, jak můžete zobrazit názvy databází dostupných v instanci MongoDB spuštěné ve vašem systému.

var connectionString;

var client = new MongoClient (connectionString);

pomocí (var cursor = client.ListDatabases ())

  {

var databaseDocuments = cursor.ToList ();

foreach (var db v databaseDocuments)

      {

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

      }

  }

Po provedení výše uvedeného fragmentu kódu uvidíte název databáze (tj. „) uvedené v okně konzoly. Můžete také použít asynchronní metodu, ListDatabasesAsync, chcete-li zobrazit seznam názvů databází, jak je uvedeno v níže uvedeném fragmentu kódu.

soukromá statická asynchronní úloha DisplayDatabaseNames ()

    {

var connectionString;

var client = new MongoClient (connectionString);

Snaž se

        {

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

            {

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

            }               

        }

chytit

        {

// Sem napište vlastní kód pro zpracování výjimek

        }

    }

MongoDB je populární databáze NoSQL, která má flexibilní datový model a ladně škáluje. MongoDB poskytuje podporu pro horizontální škálovatelnost pomocí techniky známé jako horizontální dělení. Pokročilé koncepty v MongoDB budu diskutovat v budoucích příspěvcích zde. Do té doby možná budete chtít číst ovladač MongoDB C # v dokumentaci MongoDB.

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