MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Bộ sưu tập Mongodb dưới dạng động

Trình điều khiển MongoDB .NET cung cấp một số khả năng trong các trường hợp như vậy:

Tính đa hình

Bạn có thể xây dựng một hệ thống phân cấp các lớp và trình điều khiển MongoDB sẽ có thể xác định loại đối tượng mà nó được truy xuất từ ​​cơ sở dữ liệu:

[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; }
}

Trình điều khiển MongoDB sẽ tạo trường bổ sung _t trong mọi tài liệu sẽ đại diện cho lớp tương ứng.

Lớp đơn

Bạn vẫn có thể có Post lớp và sử dụng BsonIgnoreIfNull thuộc tính để tránh ngoại lệ tuần tự hóa. Trình điều khiển MongoDB .NET sẽ đặt các thuộc tính đó thành null nếu chúng không tồn tại trong cơ sở dữ liệu của bạn.

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

BsonDocument

Bạn cũng có thể loại bỏ cách tiếp cận được đánh máy mạnh và sử dụng BsonDocument lớp là cấu trúc giống như từ điển động đại diện cho các tài liệu Mongo của bạn

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

Thông tin chi tiết khác tại đây

động

Chỉ định dynamic dưới dạng tham số chung của ICollection bạn sẽ nhận được danh sách ExpandoObject điều đó sẽ giữ tất cả các giá trị bạn có trong cơ sở dữ liệu của mình.

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. Cách nhóm các tài liệu với trường cụ thể trong tập hợp mongodb

  2. MongoDB GPG - Chữ ký không hợp lệ

  3. Chỉ định tên bộ sưu tập với MongoEngine

  4. Hiển thị kích thước điều kiện của một mảng với các trường khác của tài liệu mongodb

  5. Làm cách nào để truy xuất tài liệu bằng _id?