Ohjelmointi

Kuinka työskennellä MongoDB: n kanssa .NET-tiedostossa

MongoDB on suosittu, avoimen lähdekoodin laajennettava NoSQL-tietokanta, joka tarjoaa korkean suorituskyvyn datapohjaisiin sovelluksiisi. Toisin kuin relaatiotietokannat, kuten SQL Server, Oracle ja MySQL, jotka tallentavat tietoja taulukoihin jäykän skeeman mukaisesti, MongoDB tallentaa tietoja asiakirjoihin, joissa on joustava skeema. Ympärillä on monia tällaisia ​​ei-relaatiotietokantoja, mukaan lukien CouchDB, RavenDB ja Couchbase. Pidän kuitenkin MongoDB: stä ensisijaisesti sen skaalautuvuuden, nopeuden ja dynaamisen kyselyominaisuuden vuoksi.

MongoDB käyttää konepellin alla olevaa BSON-muotoa edustamaan JSON-asiakirjoja tietovaraston ytimessä. BSON tai “Binary JSON” on kevyt ja tehokas binäärikoodatun tiedon sarjamuodon muoto, joka tukee nopeaa tiedonsiirtoa ja hakuja. BSON sallii MongoDB: n myös tukea tietotyyppejä - nimittäin int, long, date, floating point ja decimal128 - joita ei ole esitetty JSON: ssa.

MongoDB: ssä asiakirjat ovat osa kokoelmia, melkein samalla tavalla kuin rivi on osa relaatiotietokannan taulukkoa. Asiakirja on lähinnä kokoelma kenttä- ja arvopareja, jotka voidaan myös sisäkkäin. Huomaa, että MongoDB: n arvo voi olla asiakirja, joukko asiakirjoja, BSON-taulukko tai vain BSON-tyyppi. Katsotaanpa, kuinka voimme työskennellä MongoDB: n kanssa käyttämällä C #: ta.

Asenna MongoDB ja luo uusi projekti

Aloita lataamalla MongoDB-binäärit. Pura binäärit valitsemallesi kansioon järjestelmässäsi ja luo erillinen kansio (minun tapauksessani C: \ data \ db) tiedoille. Käynnistä sitten MongoDB siirtymällä kansioon, johon MongoDB on asennettu, ja suorita mongodi komento komentokehoteikkunassa. Sen pitäisi käynnistää MongoDB oletusarvoisesti portissa 27017.

Luo uusi konsolisovellusprojekti Visual Studiossa ja asenna MongoDB.Driver-paketti NuGet Package Manager -konsolin kautta seuraavalla komennolla.

PM> Install-Package MongoDB.Driver

Tämä asentaa seuraavat kolme NuGet-pakettia kerralla.

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

Yhdistä MongoDB-ilmentymään

Voit muodostaa yhteyden MongoDB-ilmentymään sen oletusportissa 27017 käyttämällä MongoClient luokka alla olevan kuvan mukaisesti.

var asiakas = uusi MongoClient ();

Harkitse nyt seuraavaa luokkaa. Käytämme tätä luokkaa tietojen tallentamiseen MongoDB: hen.

public class Kirjoittaja

    {

julkinen int Id {get; aseta; }

julkinen merkkijono Etunimi {get; aseta; }

julkinen merkkijono Sukunimi {get; aseta; }

    }

Luo tietokanta ja kokoelma

Seuraava koodiluettelo näyttää, kuinka voit luoda tietokannan ja kokoelman sen sisälle ja lisätä objektin sitten kokoelmaan.

staattinen void Main (merkkijono [] args)

    {           

var connectionString;

var asiakas = uusi MongoClient (connectionString);

IMongoDatabase db = asiakas.GetDatabase (“”);

Kirjoittaja kirjoittaja = uusi kirjoittaja

        {

Id = 1,

Etunimi,

Sukunimi

        };

var-kokoelma = db.GetCollection ("kirjoittajat");

kokoelma.InsertOne (tekijä);

Konsoli.Lue ();

    }

Huomaa, että seuraavat nimitilat tulisi sisällyttää ohjelmaasi.

käyttämällä MongoDB.Bsonia;

käyttämällä MongoDB.Driver;

Katso nyt Main menetelmä yllä olevassa koodiluettelossa. Huomaa, että seuraava lause luo uuden tietokannan nimeltä ”” jos sellaista ei ole olemassa.

IMongoDatabase db = asiakas.GetDatabase (“”);

Vastaavasti seuraava lausunto luo uuden kokoelman "Kirjoittaja" esineitä, jos niitä ei ole. Kummassakin tapauksessa GetCollection method palauttaa kokoelman esiintymän.

var-kokoelma = db.GetCollection ("kirjoittajat");

Lisää asiakirjoja kokoelmaan

Seuraavaksi luomme esimerkin Kirjoittaja luokka ja määrittää sen arvot Etunimi ja Sukunimi ominaisuudet.

Kirjoittaja kirjoittaja = uusi kirjoittaja

{

Id = 1,

Etunimi,

Sukunimi

};

Lisää alla oleva lauseke lisäämällä Kirjoittaja luokan kokoelmaan.

kokoelma.InsertOne (tekijä);

Huomaa, että voit lisätä useita asiakirjoja kaikki samanaikaisesti käyttämällä LisääMany tai LisääManyAsync menetelmä. Seuraava koodiluettelo kuvaa, miten LisääMany menetelmää voidaan käyttää.

käyttämällä järjestelmää;

käyttämällä System.Collections.Generic;

käyttämällä MongoDB.Bsonia;

käyttämällä MongoDB.Driver;

staattinen void Main (merkkijono [] args)

    {           

var connectionString;

var asiakas = uusi MongoClient (connectionString);

IMongoDatabase db = asiakas.GetDatabase (“”);

var collection = db.GetCollection (“Tekijät”);

var author1 = uusi BsonDocument

        {

{”Id”, 1},

{”Etunimi”, “Joydip”},

{”Sukunimi”, “Kanjilal”}

        };

var author2 = uusi BsonDocument

        {

{”Id”, 2},

{”Etunimi”, “Steve”},

{”Sukunimi”, “Smith”}

        };

var author3 = uusi BsonDocument

        {

{”Id”, 3},

{”Etunimi”, “Gary”},

{”Sukunimi”, “Stevens”}

        };

var kirjoittajat = uusi luettelo ();

kirjoittajat.Lisää (tekijä1);

kirjoittajat.Lisää (tekijä2);

kirjoittajat.Lisää (tekijä3);

kokoelma.InsertMany (tekijät);

Konsoli.Lue ();

    }

Bson-asiakirja luokkaa MongoDB.Bson-paketissa käytetään edustamaan BSON-asiakirjaa. Seuraava koodinpätkä osoittaa, kuinka voit näyttää järjestelmässäsi käynnissä olevan MongoDB-ilmentymän käytettävissä olevien tietokantojen nimet.

var connectionString;

var asiakas = uusi MongoClient (connectionString);

käyttäen (var cursor = client.ListDatabases ())

  {

var databaseDocuments = kohdistin.ToList ();

foreach (var db tietokannassaDocuments)

      {

Console.WriteLine (db [“nimi”]. ToString ());

      }

  }

Kun suoritat yllä olevan koodinpätkän, näet tietokannan nimen (ts.), joka on lueteltu konsoli-ikkunassa. Voit käyttää myös asynkronista menetelmää, ListDatabasesAsync, luetteloiden tietokannan nimet alla olevan koodinpätkän mukaisesti.

yksityinen staattinen asynkronointi Tehtävä DisplayDatabaseNames ()

    {

var connectionString;

var asiakas = uusi MongoClient (connectionString);

yrittää

        {

käyttäen (var cursor = await client.ListDatabasesAsync ())

            {

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

            }               

        }

saada kiinni

        {

// Kirjoita oma koodi tähän käsittelemään poikkeuksia

        }

    }

MongoDB on suosittu NoSQL-tietokanta, jolla on joustava tietomalli ja mittakaava sulavasti. MongoDB tukee vaakasuuntaista skaalautuvuutta käyttämällä sirpaleena tunnettua tekniikkaa. Keskustelen edistyneemmistä käsitteistä MongoDB: ssä tulevissa viesteissä täällä. Siihen asti saatat haluta lukea MongoDB C # -ohjaimen MongoDB-ohjeista.

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