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

MongoDb tuần tự hóa các kiểu (lớp) chung

Bạn chắc chắn có thể lưu trữ tất cả tài liệu của mình trong một bộ sưu tập, tuy nhiên, về lâu dài có lẽ dễ dàng hơn và gọn gàng hơn nếu chỉ lưu trữ một loại trong một bộ sưu tập (từ góc độ C #). Bạn có thể thực hiện việc này bằng cách tạo một lớp có Phương thức mở rộng trên MongoDatabase.

public static class MyDatabase
{
    public static MongoCollection<T> GetCollection<T>(this MongoDatabase db)
    {
        var name = typeof(T).Name;
        return db.GetCollection<T>(name);
    }
}

Sau đó, bạn chỉ có thể gọi GetCollection với loại của bạn trên đó và tên sẽ được ẩn khỏi mã chung của bạn. Bạn cũng có thể tạo một cái gì đó như thế này để trừu tượng hóa mọi thứ xa hơn một chút:

public class MyDatabase
{
    private MongoDatabase _db;

    public MyDatabase(MongoDatabase db)
    {
        _db = db;
    }

    public MongoCollection<object> Objects
    {
        get
        {
            return _db.GetCollection<object>();
        }
    }
}

Với điều này, bạn chỉ có thể làm

var client = new MongoClient();
var server = client.GetServer();
var db = server.GetDatabase("MyDb");
var myDb = new MyDatabase(db);
myDb.Objects.Find();

Find này sẽ ánh xạ để thực thi đối với Objects bộ sưu tập, chỉ cần thay thế <object> với loại của bạn và đặt tên cho bộ sưu tập.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách chạy tệp js trong mongo bằng cách sử dụng dữ liệu mùa xuân

  2. Vệ sinh thông tin nhập của người dùng trong Mongoose

  3. Mongoose - Tìm kiếm văn bản trong ba trường dựa trên điểm số hoặc trọng số

  4. Kết nối với cơ sở dữ liệu MongoDB

  5. Sao chép giá trị mảng đầu tiên sang một trường khác trong MongoDB