sql >> Database >  >> NoSQL >> MongoDB

Vertaal Queryable terug naar IMongoQuery

Bewerkt antwoord:

Ik realiseerde me dat er al een officiële manier is om de Mongo-query van een LINQ-query te krijgen (ik had het moeten weten!). Je moet de IQueryable downcasten naar een MongoQueryable om toegang te krijgen tot de GetMongoQuery-methode:

var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var mongoQuery = ((MongoQueryable<Entity>)linqQuery).GetMongoQuery();

Oorspronkelijk antwoord:

Op dit moment is er geen officieel ondersteunde manier om dat te doen, maar in de nabije toekomst zijn we van plan om het gemakkelijk te maken om erachter te komen aan welke MongoDB-query de LINQ-query is toegewezen.

Op korte termijn zou je de volgende ongedocumenteerde interne methoden kunnen gebruiken om erachter te komen aan welke MongoDB-query de LINQ-query is toegewezen:

var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var translatedQuery = (SelectQuery)MongoQueryTranslator.Translate(linqQuery);
var mongoQuery = translatedQuery.BuildQuery();

Maar op een gegeven moment moet je misschien overschakelen van deze ongedocumenteerde methoden naar officieel ondersteunde methoden (de ongedocumenteerde methoden kunnen in de toekomst veranderen of worden hernoemd).



  1. MongoDB-prestaties volgen?

  2. Waarom wordt er een _id met ObjectID toegevoegd wanneer $push van MongoDB wordt gebruikt om een ​​nieuw object aan een array toe te voegen?

  3. De MongoDB-foutlogboeken decoderen

  4. Implementeer een GraphQL API met MongoDB Atlas en Apollo Server op Koyeb