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

Ánh xạ thuộc tính không phân biệt chữ hoa chữ thường

Để làm được điều đó, tôi nghĩ bạn sẽ có 2 lựa chọn.

Đầu tiên là viết bản đồ lớp theo cách thủ công

BsonClassMap.RegisterClassMap<MyClass>(cm => {
    cm.AutoMap();
    cm.GetMemberMap(c => c.Foo).SetElementName("foo");
});

Thứ hai là trang trí lớp học của bạn với các thuộc tính sau

public class MyObj
{
    [BsonElement("id")]
    public int Id { get; set; }
    
    [BsonElement("foo")]
    public string Foo { get; set; }
}

Nhóm trình điều khiển CSharp có một hướng dẫn tốt về tuần tự hóa trên liên kết sau

http://docs.mongodb.org/ hệ sinh thái / hướng dẫn / serialize-Documents-with-the-csharp-driver /

Cập nhật

Tôi vừa thử cách sau và điều này phù hợp với tôi, rõ ràng tôi chắc chắn rằng đây là phiên bản mã đơn giản hơn nhiều nhưng hãy đoán xem nó có thể trông như thế nào.

Tôi đã đăng ký riêng hai bản đồ lớp và thêm BsonKnownType vào lớp cơ sở.

[BsonKnownTypes(typeof(GeoJSONObject))]
public class Point
{
    public string Coordinates { get; set; }
}

public class GeoJSONObject : Point
{
    public string Type { get; set; }
}

static void Main(string[] args)
{
    var cn = new MongoConnectionStringBuilder("server=localhost;database=MyTestDB;");
    var settings = MongoClientSettings.FromConnectionStringBuilder(cn);
    var client = new MongoClient(settings);

    BsonClassMap.RegisterClassMap<Point>(cm =>
    {
        cm.AutoMap();
        cm.GetMemberMap(c => c.Coordinates).SetElementName("coordinates");                   
    });

    BsonClassMap.RegisterClassMap<GeoJSONObject>(cm =>
    {
        cm.AutoMap();
        cm.GetMemberMap(c => c.Type).SetElementName("type");
    });

    var result = client.GetServer()
              .GetDatabase("MyTestDB")
              .GetCollection("MyCol")
              .Find(Query.EQ("type", BsonValue.Create("xxxx")));
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. tiêm mongoDB

  2. Cách mới để quản lý cơ sở dữ liệu nguồn mở

  3. Lấy tổ tiên trong MongoDb bằng cách sử dụng cấu trúc cây

  4. Làm cách nào để tạo cả khách hàng và thẻ trong một hành động với Stripe?

  5. Đang xóa dữ liệu chủ đề từ nhà sản xuất Java sang Mongodb