MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Koleksi Mongodb sebagai dinamis

Driver MongoDB .NET menawarkan beberapa kemungkinan dalam kasus seperti ini:

Polimorfisme

Anda dapat membangun hierarki kelas dan driver MongoDB akan dapat menentukan jenis objek yang diambil dari database:

[BsonKnownTypes(typeof(Post), typeof(NewTypePost))]
public abstract class PostBase
{
    [BsonId]
    public string Id { get; set; }
}


public class Post: PostBase
{        
    public string Message { get; set; }
}

public class NewTypePost: PostBase
{
    public string Image { get; set; }
}

Driver MongoDB akan membuat bidang tambahan _t di setiap dokumen yang akan mewakili kelas yang sesuai.

Kelas Tunggal

Anda masih dapat memiliki Post kelas dan gunakan BsonIgnoreIfNull atribut untuk menghindari pengecualian serialisasi. Driver MongoDB .NET akan mengatur properti tersebut ke null jika tidak ada di database Anda.

public class Post
{   
    [BsonId]
    public string Id { get; set; }
    [BsonIgnoreIfNull]     
    public string Message { get; set; } 
    [BsonIgnoreIfNull]
    public string Image { get; set; }
}

BsonDocument

Anda juga dapat menghapus pendekatan yang sangat diketik dan menggunakan BsonDocument class yang merupakan struktur seperti kamus dinamis yang mewakili dokumen Mongo Anda

var collection = db.GetCollection<BsonDocument>("posts");

Detail selengkapnya di sini

dinamis

Menentukan dynamic sebagai parameter generik ICollection anda harus mendapatkan daftar ExpandoObject yang akan menampung semua nilai yang Anda miliki di database Anda.

var collection = db.GetCollection<dynamic>("posts");
var data = collection.Find(Builders<dynamic>.Filter.Empty).ToList();
var firstMessage = data[0].Message; // dynamically typed code


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara saya menanyakan array kamus di MongoDB?

  2. Mencetak output kueri Mongo ke file saat berada di shell mongo

  3. Kueri MongoDB untuk catatan dengan bidang &pengindeksan yang tidak ada

  4. Spring Boot menyiapkan repositori MongoDB

  5. Dapatkan dokumen dengan objek bersarang yang cocok dengan kondisi jumlah