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

Oversæt Queryable tilbage til IMongoQuery

Redigeret svar:

Jeg indså, at der allerede er en officiel måde at få Mongo-forespørgslen på fra en LINQ-forespørgsel (det burde jeg have vidst!). Du skal nedkaste IQueryable til en MongoQueryable for at få adgang til GetMongoQuery-metoden:

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

Originalt svar:

I øjeblikket er der ingen officielt understøttet måde at gøre det på, men i den nærmeste fremtid har vi til hensigt at gøre det nemt at finde ud af, hvilken MongoDB-forespørgsel LINQ-forespørgslen var knyttet til.

På kort sigt kan du bruge følgende udokumenterede interne metoder til at finde ud af, hvilken MongoDB-forespørgsel LINQ-forespørgslen er knyttet til:

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

Men på et tidspunkt bliver du måske nødt til at skifte fra disse udokumenterede metoder til officielt understøttede metoder (de udokumenterede metoder kan ændre sig eller blive omdøbt i fremtiden).



  1. Mongodb findAndModify node js

  2. MongoDB / Pymongo-forespørgsel med Datetime

  3. Mongo konverter indlejret dokument til array

  4. Slaget om NoSQL-databaserne - Sammenligning af MongoDB &MSSQL's NoSQL-funktioner