Programavimas

Kaip dirbti su MongoDB .NET

„MongoDB“ yra populiari, atviro kodo, išplėsta „NoSQL“ duomenų bazė, užtikrinanti didelį jūsų duomenų valdomų programų pralaidumą. Skirtingai nuo reliacinių duomenų bazių, tokių kaip SQL Server, Oracle ir MySQL, kurios duomenis saugo lentelėse pagal standžią schemą, MongoDB saugo duomenis dokumentuose su lanksčia schema. Yra daug tokių nereliacinių duomenų bazių, įskaitant „CouchDB“, „RavenDB“ ir „Couchbase“. Tačiau man labiausiai patinka „MongoDB“ dėl jo mastelio, greičio ir dinamiškų užklausų teikimo galimybių.

„MongoDB“ naudoja BSON formatą po gaubtu, kad atvaizduotų JSON dokumentus duomenų saugyklos centre. BSON arba „Dvejetainis JSON“ yra lengvas ir efektyvus dvejetainiais koduotais duomenų serijos formato formatas, palaikantis greitą duomenų perėjimą ir paieškas. BSON taip pat leidžia „MongoDB“ palaikyti duomenų tipus - būtent int, long, date, slankiojo kablelio ir dešimtainio skaičiaus128 -, kurių nėra JSON.

„MongoDB“ dokumentai yra kolekcijų dalis, panašiai kaip eilutė yra reliacinės duomenų bazės lentelės dalis. Iš esmės dokumentas yra laukų ir reikšmių porų rinkinys, kuris taip pat gali būti įdėtas. Atminkite, kad „MongoDB“ reikšmė gali būti dokumentas, dokumentų masyvas, BSON masyvas arba tiesiog BSON tipas. Pažvelkime, kaip mes galime dirbti su „MongoDB“ naudodami C #.

Įdiekite „MongoDB“ ir sukurkite naują projektą

Pradėkite atsisiųsdami „MongoDB“ dvejetainius failus. Išpakuokite dvejetainius failus į pasirinktą aplanką savo sistemoje ir sukurkite atskirą aplanką (mano atveju C: \ data \ db) duomenims. Tada, norėdami paleisti „MongoDB“, eikite į aplanką, kuriame įdiegta „MongoDB“, ir vykdykite mongodas komandą komandų eilutės lange. Tai turėtų paleisti „MongoDB“ pagal nutylėjimą 27017 prievade.

Sukurkite naują konsolės programos projektą „Visual Studio“ ir įdiekite „MongoDB.Driver“ paketą per „NuGet Package Manager Console“ naudodami šią komandą.

PM> „Install-Package MongoDB.Driver“

Tai vienu metu įdiegs šiuos tris „NuGet“ paketus.

  • MongoDB.Bson
  • MongoDB. Vairuotojas. Pagrindas
  • MongoDB. Vairuotojas

Prisijunkite prie savo „MongoDB“ egzemplioriaus

Norėdami prisijungti prie „MongoDB“ egzemplioriaus pagal numatytąjį prievadą 27017, galite naudoti numatytąjį „MongoClient“ klasės, kaip parodyta žemiau.

var klientas = naujas MongoClient ();

Dabar apsvarstykite šią klasę. Šią klasę naudosime duomenims saugoti „MongoDB“.

visuomenės klasės Autorius

    {

public int Id {get; rinkinys; }

public string FirstName {get; rinkinys; }

vieša eilutė Pavardė {get; rinkinys; }

    }

Sukurkite duomenų bazę ir kolekciją

Šis kodų sąrašas parodo, kaip galite sukurti duomenų bazę ir kolekciją joje, o tada įterpti objektą į kolekciją.

static void Main (string [] args)

    {           

var connectionString;

var klientas = naujas „MongoClient“ (connectionString);

„IMongoDatabase“ = klientas.GetDatabase („“);

Autorius autorius = naujas autorius

        {

Id = 1,

Pirmas vardas,

Pavardė

        };

var kolekcija = db.GetCollection („autoriai“);

kolekcija.InsertOne (autorius);

Pultas.Skaitykite ();

    }

Atminkite, kad šios vardų srities turėtų būti įtrauktos į jūsų programą.

naudojant „MongoDB.Bson“;

naudojant „MongoDB.Driver“;

Dabar kreipkitės į Pagrindinis metodas aukščiau pateiktame kodų sąraše. Atminkite, kad šis sakinys sukuria naują duomenų bazę pavadinimu ”” jei nė vienas tuo vardu neegzistuoja.

„IMongoDatabase“ = klientas.GetDatabase („“);

Panašiai šis teiginys sukuria naują „Autorius“ objektų, jei jų nėra. Bet kuriuo atveju „GetCollection“ metodas pateikia kolekcijos egzempliorių.

var kolekcija = db.GetCollection („autoriai“);

Pridėti dokumentus prie kolekcijos

Tada sukursime Autorius klasę ir priskirti jai reikšmes Pirmas vardas ir Pavardė savybes.

Autorius autorius = naujas autorius

{

Id = 1,

Pirmas vardas,

Pavardė

};

Naudokite toliau pateiktą teiginį, kad įterptumėte Autorius klasę į kolekciją.

kolekcija.InsertOne (autorius);

Atminkite, kad vienu metu galite įterpti kelis dokumentus naudodami Įterpti Daug arba „InsertManyAsync“ metodas. Šis kodų sąrašas parodo, kaip Įterpti Daug metodas gali būti naudojamas.

naudojant sistemą;

naudojant „System.Collections.Generic“;

naudojant MongoDB.Bson;

naudojant „MongoDB.Driver“;

static void Main (string [] args)

    {           

var connectionString;

var klientas = naujas „MongoClient“ (connectionString);

„IMongoDatabase“ = klientas.GetDatabase („“);

var kolekcija = db.GetCollection („Autoriai“);

var author1 = naujas „BsonDocument“

        {

{”Id”, 1},

{“Vardas“, „Joydipas“},

{”Pavardė”, “Kanjilal”}

        };

var author2 = naujas „BsonDocument“

        {

{”Id”, 2},

{“Vardas“, „Steve“},

{”Pavardė”, “Smithas”}

        };

var author3 = naujas „BsonDocument“

        {

{”Id”, 3},

{“Vardas“, „Gary“},

{”Pavardė”, “Stevensas}}

        };

var autoriai = naujas sąrašas ();

autoriai.Pridėti (autorius1);

autoriai.Pridėti (autorius2);

autoriai.Pridėti (autorius3);

kolekcija.Įterpti Daug (autoriai);

Pultas.Skaitykite ();

    }

BsonDokumentas klasė „MongoDB.Bson“ pakete naudojama BSON dokumentui reprezentuoti. Šis kodo fragmentas parodo, kaip galite rodyti duomenų bazių, esančių jūsų sistemoje veikiančiame „MongoDB“ egzemplioriuje, pavadinimus.

var connectionString;

var klientas = naujas „MongoClient“ (connectionString);

naudojant (var žymeklis = klientas.ListDatabases ())

  {

var databaseDocuments = žymeklis.ToList ();

foreach (kintamasis duomenų bazėjeDocuments)

      {

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

      }

  }

Vykdydami anksčiau pateiktą kodo fragmentą pamatysite duomenų bazės pavadinimą (t. Y.), pateiktą konsolės lange. Taip pat galite naudoti asinchroninį metodą, „ListDatabasesAsync“, norėdami išvardyti duomenų bazių pavadinimus, kaip parodyta toliau pateiktame kodo fragmente.

privati ​​statinė asinchroninė užduotis „DisplayDatabaseNames“ ()

    {

var connectionString;

var klientas = naujas „MongoClient“ (connectionString);

bandyti

        {

naudojant (var žymeklis = laukti kliento.ListDatabasesAsync ())

            {

laukti žymeklio.ForEachAsync (dokumentas => Console.WriteLine (document.ToString ()));

            }               

        }

pagauti

        {

// Čia įrašykite savo kodą, kad galėtumėte tvarkyti išimtis

        }

    }

„MongoDB“ yra populiari „NoSQL“ duomenų bazė, turinti lankstų duomenų modelį ir grakščiai mastelius. „MongoDB“ teikia horizontalaus mastelio palaikymo metodą, vadinamą smulkinimu. Aptarsiu pažangesnes koncepcijas MongoDB ateinančiuose pranešimuose čia. Iki to laiko galite perskaityti „MongoDB C #“ tvarkyklę „MongoDB“ dokumentacijoje.

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