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.