sql >> Database >  >> NoSQL >> MongoDB

C# MongoDB LINQ gebruiken met discriminator

Wanneer u met een polymorfe typehiërarchie werkt, moeten uw verzamelingsvariabele en uw LINQ-query's beginnen in termen van de basisklasse. Om bijvoorbeeld alle documenten van het type A terug te lezen uit de database, schrijft u:

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

Voor diagnostische doeleinden kunt u de bijbehorende native MongoDB-query bekijken met:

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

Merk op dat u een query moet casten naar een MongoQueryable (niet MongoQueryable) omdat de OfType()-aanroep het type van de IQueryable heeft gewijzigd.



  1. Schakel collectie in mongoengine voor zoekquery

  2. Vind documenten inclusief element in Array veld met mongomapper?

  3. MongoDB-update met voorwaarde

  4. Sorteer de array in het document met MongoDB