MongoDB er en populær, open source, skalerbar NoSQL-database, der giver høj kapacitet til dine datadrevne applikationer. I modsætning til relationsdatabaser som SQL Server, Oracle og MySQL, der gemmer data i tabeller i henhold til et stift skema, gemmer MongoDB data i dokumenter med fleksibelt skema. Der er mange sådanne ikke-relationelle databaser, herunder CouchDB, RavenDB og Couchbase. Jeg kan dog godt lide MongoDB primært på grund af dets skalerbarhed, hastighed og dynamiske forespørgsel.
MongoDB bruger BSON-formatet under emhætten til at repræsentere JSON-dokumenterne i hjertet af datalageret. BSON eller "Binary JSON" er et let og effektivt binært kodet dataserialiseringsformat, der understøtter hurtig datatraversering og søgning. BSON tillader også MongoDB at understøtte datatyper - nemlig int, lang, dato, flydende punkt og decimal128 - ikke repræsenteret i JSON.
I MongoDB-dokumenter er en del af samlinger, på samme måde som en række er en del af en tabel i en relationsdatabase. Et dokument er i det væsentlige en samling af felt- og værdipar, som også kan indlejres. Bemærk, at en værdi i MongoDB kan være et dokument, et array af dokumenter, et array af BSON eller bare en BSON-type. Lad os se på, hvordan vi kan arbejde med MongoDB ved hjælp af C #.
Installer MongoDB, og opret et nyt projekt
Start med at downloade MongoDB-binærfiler. Pak binærfilerne ud til en mappe efter eget valg i dit system, og opret en separat mappe (i mit tilfælde C: \ data \ db) til dataene. Start derefter MongoDB ved at navigere til mappen, hvor MongoDB er installeret, og udføre mongod
kommando i kommandopromptvinduet. Det skal starte MongoDB i port 27017 som standard.
Opret et nyt konsolapplikationsprojekt i Visual Studio, og installer pakken MongoDB.Driver via NuGet Package Manager-konsol med følgende kommando.
PM> Install-Package MongoDB.Driver
Dette installerer de følgende tre NuGet-pakker på én gang.
- MongoDB.Bson
- MongoDB.Driver.Core
- MongoDB. Driver
Opret forbindelse til din MongoDB-forekomst
For at oprette forbindelse til en MongoDB-forekomst ved dens standardport 27017 kan du bruge standardkonstruktøren til MongoClient
klasse som vist nedenfor.
var klient = ny MongoClient ();
Overvej nu følgende klasse. Vi bruger denne klasse til at gemme data i MongoDB.
offentlig klasse Forfatter{
public int Id {get; sæt; }
offentlig streng Fornavn {get; sæt; }
public string LastName {get; sæt; }
}
Opret en database og samling
Følgende kodeliste viser, hvordan du kan oprette en database og en samling inde i den og derefter indsætte et objekt inde i samlingen.
statisk ugyldigt Main (streng [] args){
var connectionString;
var klient = ny MongoClient (connectionString);
IMongoDatabase db = client.GetDatabase (“”);
Forfatterforfatter = ny forfatter
{
Id = 1,
Fornavn,
Efternavn
};
var collection = db.GetCollection (“forfattere”);
collection.InsertOne (forfatter);
Console.Read ();
}
Bemærk, at følgende navneområder skal medtages i dit program.
ved hjælp af MongoDB.Bson;ved hjælp af MongoDB.Driver;
Se nu Vigtigste
metode i kodelisten ovenfor. Bemærk, at følgende udsagn opretter en ny database med navnet ””
hvis ingen findes ved dette navn.
IMongoDatabase db = client.GetDatabase (“”);
Tilsvarende opretter følgende udsagn en ny samling af "Forfatter"
objekter, hvis der ikke findes nogen. I begge tilfælde GetCollection
metoden returnerer en samlingsinstans.
var collection = db.GetCollection (“forfattere”);
Føj dokumenter til samlingen
Dernæst opretter vi en forekomst af Forfatter
klasse og tildele værdier til dens Fornavn
og Efternavn
ejendomme.
Forfatterforfatter = ny forfatter{
Id = 1,
Fornavn,
Efternavn
};
Brug udsagnet nedenfor til at indsætte forekomsten af Forfatter
klasse ind i samlingen.
collection.InsertOne (forfatter);
Bemærk, at du kan indsætte flere dokumenter på samme tid ved hjælp af Indsæt mange
eller InsertManyAsync
metode. Følgende kodeliste illustrerer, hvordan Indsæt mange
metode kan bruges.
ved hjælp af System;ved hjælp af System.Collections.Generic;
ved hjælp af MongoDB.Bson;
ved hjælp af MongoDB.Driver;
statisk ugyldigt Main (streng [] args)
{
var connectionString;
var klient = ny MongoClient (connectionString);
IMongoDatabase db = client.GetDatabase (“”);
var collection = db.GetCollection (“Forfattere”);
var author1 = nyt BsonDocument
{
{”Id”, 1},
{”Fornavn”, “Joydip”},
{”Efternavn”, “Kanjilal”}
};
var author2 = nyt BsonDocument
{
{”Id”, 2},
{”Fornavn”, “Steve”},
{”Efternavn”, “Smith”}
};
var author3 = nyt BsonDocument
{
{”Id”, 3},
{”Fornavn”, “Gary”},
{”Efternavn”, “Stevens”}
};
var forfattere = ny liste ();
forfattere.Tilføj (forfatter1);
author.Add (author2);
author.Add (author3);
collection.InsertMany (forfattere);
Console.Read ();
}
Det BsonDokument
klasse i MongoDB.Bson-pakken bruges til at repræsentere et BSON-dokument. Følgende kodestykke viser, hvordan du kan vise navnene på de tilgængelige databaser i tilfælde af MongoDB, der kører i dit system.
var connectionString;var klient = ny MongoClient (connectionString);
ved hjælp af (var cursor = client.ListDatabases ())
{
var databaseDocuments = cursor.ToList ();
foreach (var db i databaseDocuments)
{
Console.WriteLine (db [“navn”]. ToString ());
}
}
Når du udfører ovenstående kodestykke, vil du se navnet på databasen (dvs. "”
) opført i konsolvinduet. Du kan også bruge den asynkrone metode, ListeDatabaserAsync
, for at angive databasens navne som vist i kodestykket nedenfor.
privat statisk async Task DisplayDatabaseNames (){
var connectionString;
var klient = ny MongoClient (connectionString);
prøve
{
ved hjælp af (var cursor = await client.ListDatabasesAsync ())
{
afventer cursor.ForEachAsync (document => Console.WriteLine (document.ToString ()));
}
}
fangst
{
// Skriv din egen kode her for at håndtere undtagelser
}
}
MongoDB er en populær NoSQL-database, der har en fleksibel datamodel og skaleres yndefuldt. MongoDB yder understøttelse af vandret skalerbarhed ved hjælp af en teknik kendt som sharding. Jeg vil diskutere mere avancerede koncepter i MongoDB i fremtidige indlæg her. Indtil da vil du muligvis læse om MongoDB C # -driveren i MongoDB-dokumentationen.