Cara bekerja dengan MongoDB di .NET

MongoDB adalah database NoSQL yang populer, open source, dan berskala besar yang menyediakan throughput tinggi untuk aplikasi berbasis data Anda. Tidak seperti database relasional seperti SQL Server, Oracle, dan MySQL, yang menyimpan data dalam tabel sesuai dengan skema yang kaku, MongoDB menyimpan data dalam dokumen dengan skema fleksibel. Ada banyak database non-relasional seperti CouchDB, RavenDB, dan Couchbase. Namun, saya suka MongoDB terutama karena skalabilitas, kecepatan, dan kemampuan kueri dinamisnya.

MongoDB menggunakan format BSON di bawah tenda untuk mewakili dokumen JSON di jantung penyimpanan data. BSON atau "Binary JSON" adalah format serialisasi data berkode biner yang ringan dan efisien yang mendukung traversal dan pencarian data yang cepat. BSON juga memungkinkan MongoDB untuk mendukung tipe data — yaitu int, long, date, floating point, dan decimal128 — tidak direpresentasikan dalam JSON. 

Dalam dokumen MongoDB adalah bagian dari koleksi, dengan cara yang sama seperti baris adalah bagian dari tabel dalam database relasional. Dokumen pada dasarnya adalah kumpulan pasangan bidang dan nilai, yang juga bisa disarangkan. Perhatikan bahwa nilai dalam MongoDB dapat berupa dokumen, array dokumen, array BSON, atau hanya jenis BSON. Mari kita lihat bagaimana kita dapat bekerja dengan MongoDB menggunakan C #. 

Instal MongoDB dan buat proyek baru

Mulailah dengan mengunduh binari MongoDB. Unzip binari ke folder pilihan Anda di sistem Anda dan buat folder terpisah (dalam kasus saya C: \ data \ db) untuk data. Kemudian, untuk memulai MongoDB, buka folder tempat MongoDB diinstal dan jalankan mongodperintah di jendela prompt perintah. Itu harus memulai MongoDB di port 27017 secara default.

Buat proyek aplikasi konsol baru di Visual Studio dan instal paket MongoDB.Driver melalui Konsol Pengelola Paket NuGet dengan perintah berikut.  

PM> Install-Package MongoDB.Driver

Ini akan menginstal tiga paket NuGet berikut sekaligus.

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

Hubungkan ke instance MongoDB Anda

Untuk terhubung ke instance MongoDB pada port default 27017, Anda dapat menggunakan konstruktor default MongoClientclass seperti yang ditunjukkan di bawah ini.

var client = new MongoClient ();

Sekarang pertimbangkan kelas berikut. Kami akan menggunakan kelas ini untuk menyimpan data di MongoDB.

kelas publik Penulis

    {

        public int Id {get; set; }

        string publik FirstName {get; set; }

        string publik LastName {get; set; }

    }

Buat database dan koleksi

Daftar kode berikut menunjukkan bagaimana Anda bisa membuat database dan koleksi di dalamnya dan kemudian menyisipkan objek di dalam koleksi.

static void Main (string [] args)

    {           

        var connectionString;

        var client = new MongoClient (connectionString);           

        IMongoDatabase db = client.GetDatabase ("");

        Penulis penulis = Penulis baru

        {

            Id = 1,

            Nama depan,

            Nama keluarga

        };

        var collection = db.GetCollection ("penulis");

        collection.InsertOne (penulis);

        Console.Read ();

    }

Perhatikan bahwa ruang nama berikut harus disertakan dalam program Anda.

menggunakan MongoDB.Bson;

menggunakan MongoDB.Driver;

Sekarang lihat Mainmetode dalam daftar kode di atas. Perhatikan bahwa pernyataan berikut membuat database baru yang dinamai ””jika tidak ada dengan nama itu.

IMongoDatabase db = client.GetDatabase(“”);

Demikian pula, pernyataan berikut membuat kumpulan ”Author”objek baru jika tidak ada. Dalam kedua kasus tersebut, GetCollectionmetode mengembalikan contoh koleksi.

var collection = db.GetCollection ("penulis");

Tambahkan dokumen ke koleksi

Berikutnya, kita membuat sebuah instance dari Authorkelas dan nilai-nilai assign ke nya FirstNamedan LastNamesifat.

Penulis penulis = Penulis baru

{

    Id = 1,

    Nama depan,

    Nama keluarga

};

Gunakan pernyataan di bawah ini untuk memasukkan instance Authorkelas ke dalam koleksi.

collection.InsertOne (penulis);

Perhatikan bahwa Anda dapat memasukkan beberapa dokumen sekaligus menggunakan metode InsertManyatau InsertManyAsync. Daftar kode berikut mengilustrasikan bagaimana InsertManymetode dapat digunakan.

menggunakan Sistem;

menggunakan System.Collections.Generic;

menggunakan MongoDB.Bson;

menggunakan MongoDB.Driver;

static void Main (string [] args)

    {           

        var connectionString;

        var client = new MongoClient (connectionString);           

        IMongoDatabase db = client.GetDatabase ("");

        var collection = db.GetCollection ("Penulis");

        var author1 = new BsonDocument

        {

            {”Id”, 1},

            {"Firstname", "Joydip"},

            {”Nama belakang”, “Kanjilal”}

        };

        var author2 = new BsonDocument

        {

            {”Id”, 2},

            {"Firstname", "Steve"},

            {”Nama belakang”, “Smith”}

        };

      var author3 = new BsonDocument

        {

            {”Id”, 3},

            {"Firstname", "Gary"},

            {”Lastname”, “Stevens”}

        };

        var penulis = Daftar baru ();

        penulis.Tambahkan (penulis1);

        penulis.Tambahkan (penulis2);

        penulis.Tambahkan (penulis3);

        collection.InsertMany (penulis);

        Console.Read ();

    }

The BsonDocumentkelas dalam paket MongoDB.Bson digunakan untuk mewakili dokumen BSON. Potongan kode berikut menunjukkan bagaimana Anda dapat menampilkan nama database yang tersedia dalam contoh MongoDB yang berjalan di sistem Anda.

var connectionString;

var client = new MongoClient (connectionString);           

  menggunakan (var cursor = client.ListDatabases ())

  {

    var databaseDocuments = cursor.ToList ();

    foreach (var db di databaseDocuments)

      {

        Console.WriteLine (db ["nama"]. ToString ());

      }

  }

Ketika Anda menjalankan potongan kode di atas, Anda akan melihat nama database (mis., " ) Yang tercantum di jendela konsol. Anda juga dapat menggunakan metode asynchronous ListDatabasesAsync,, untuk membuat daftar nama database, seperti yang ditunjukkan dalam potongan kode yang diberikan di bawah ini.

private static async Task DisplayDatabaseNames ()

    {

        var connectionString;

        var client = new MongoClient (connectionString);

        mencoba

        {

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

            {

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

            }               

        }

        menangkap

        {

            // Tulis kode Anda sendiri di sini untuk menangani pengecualian

        }

    }

MongoDB adalah database NoSQL populer yang memiliki model data fleksibel dan berskala anggun. MongoDB memberikan dukungan untuk skalabilitas horizontal menggunakan teknik yang dikenal sebagai sharding. Saya akan membahas lebih banyak konsep lanjutan di MongoDB di posting mendatang di sini. Sampai saat itu, Anda mungkin ingin membaca tentang driver MongoDB C # di dokumentasi MongoDB.