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

Pemetaan properti yang tidak peka huruf besar-kecil

Untuk melakukan itu saya pikir Anda akan memiliki 2 pilihan.

Yang pertama adalah menulis peta kelas secara manual

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

Yang kedua adalah mendekorasi kelas Anda dengan atribut berikut

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

Tim driver CSharp memiliki tutorial yang bagus tentang serialisasi di tautan berikut

http://docs.mongodb.org/ ekosistem/tutorial/serialize-documents-with-the-csharp-driver/

Perbarui

Saya baru saja mencoba yang berikut ini dan ini berhasil untuk saya, jelas saya yakin ini adalah versi kode Anda yang jauh lebih sederhana, tetapi coba tebak tampilannya.

Saya telah mendaftarkan dua peta kelas secara terpisah dan menambahkan BsonKnownType ke kelas dasar.

[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. tidak dapat terhubung ke server 127.0.0.1 shell/mongo.js

  2. Beberapa populasi - luwak

  3. Bagaimana cara melakukan kueri NOT IN di mongodb tanpa menggunakan $nin?

  4. Mongodb mogok dengan Akses tidak valid di alamat - sinyal kesalahan segmentasi 11 - versi 2.6

  5. Jenis tertanam Golang + MongoDB (menyematkan struct di struct lain)