sql >> Databasteknik >  >> NoSQL >> MongoDB

Skiftlägesokänslig fastighetskartläggning

För att göra det tror jag att du kommer att ha två alternativ.

Det första skulle vara att skriva ut en klasskarta manuellt

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

Den andra skulle vara att dekorera din klass med följande attribut

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

CSharps förarteam har en bra handledning om serialisering på följande länk

http://docs.mongodb.org/ ekosystem/tutorial/serialize-documents-with-the-csharp-drivrutinen/

Uppdatera

Jag har precis provat följande och det här fungerar för mig, uppenbarligen är jag säker på att detta är en mycket mer förenklad version av din kod, men med en gissning om hur den kan se ut.

Jag har registrerat de två klasskartorna separat och lagt till BsonKnownType till basklassen.

[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. Hur beräknar man percentilen?

  2. ECONNREFUSED-fel vid anslutning till mongodb från node.js

  3. Databasfel MongoDB:försvunnen databas

  4. mongoimport Docker misslyckades:fel vid anslutning till db-servern:inga tillgängliga servrar