sql >> Databáze >  >> NoSQL >> MongoDB

Mapování vlastností bez ohledu na velikost písmen

Myslím, že k tomu budete mít 2 možnosti.

První by bylo napsat mapu třídy ručně

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

Druhým by bylo ozdobit svou třídu následujícími atributy

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

Tým ovladačů CSharp má dobrý návod na serializaci na následujícím odkazu

http://docs.mongodb.org/ ekosystém/výukový program/serialize-documents-with-the-csharp-driver/

Aktualizovat

Právě jsem vyzkoušel následující a funguje to pro mě, samozřejmě jsem si jistý, že se jedná o mnohem jednodušší verzi vašeho kódu, ale odhaduji, jak by to mohlo vypadat.

Zaregistroval jsem dvě mapy tříd samostatně a přidal BsonKnownType do základní třídy.

[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. Změňte typ pole v agregaci mongoDB a využívá $lookup index na polích nebo ne?

  2. Čištění osiřelých souborů z GridFS

  3. Jaká jsou omezení dílčích indexů?

  4. Vliv datového typu indexu na výkon v MongoDB?