sql >> Database teknologi >  >> NoSQL >> MongoDB

Brug af C# MongoDB LINQ med diskriminator

Når du arbejder med et polymorfisk typehierarki, bør din samlingsvariabel og dine LINQ-forespørgsler starte i form af basisklassen. For eksempel, for at læse alle dokumenter af type A tilbage fra databasen, ville du skrive:

var collection = database.GetCollection<D>("mycol");
var query = collection.AsQueryable<D>().OfType<A>();
foreach (var a in query)
{
    // process document of type A
}

Til diagnostiske formål kan du se den tilsvarende indbyggede MongoDB-forespørgsel ved hjælp af:

var json = ((MongoQueryable<A>)query).GetMongoQuery().ToJson();

Bemærk, at du skal caste forespørgsel til en MongoQueryable (ikke MongoQueryable), fordi OfType()-kaldet ændrede typen af ​​IQueryable.



  1. MongoDB $toUpper

  2. 3 måder at konvertere en dato til en streng i MongoDB

  3. Distinkt antal af flere felter ved hjælp af mongodb-aggregering

  4. Hvordan kan jeg sortere i, at nuller sidst er bestilt i mongodb?