sql >> Databasteknik >  >> NoSQL >> MongoDB

Översätt Queryable tillbaka till IMongoQuery

Redigerat svar:

Jag insåg att det redan finns ett officiellt sätt att få Mongo-frågan från en LINQ-fråga (jag borde ha vetat det!). Du måste nedkasta IQueryable till en MongoQueryable för att få tillgång till GetMongoQuery-metoden:

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

Ursprungligt svar:

För närvarande finns det inget officiellt stöd för att göra det, men inom en snar framtid avser vi att göra det enkelt att ta reda på vilken MongoDB-fråga LINQ-frågan mappades till.

På kort sikt kan du använda följande odokumenterade interna metoder för att ta reda på vilken MongoDB-fråga LINQ-frågan är mappad till:

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 någon gång kan du behöva byta från dessa odokumenterade metoder till officiellt stödda metoder (de odokumenterade metoderna kan ändras eller byta namn i framtiden).



  1. MongoDB Textsökning OCH flera sökord

  2. Hur använder man vårdata mongo @CompoundIndex med undersamlingar?

  3. Automatisera databaskonfigurationskontroll

  4. HBase Performance CDH5 (HBase1) vs CDH6 (HBase2)