Edytowana odpowiedź:
Zdałem sobie sprawę, że istnieje już oficjalny sposób na uzyskanie zapytania Mongo z zapytania LINQ (powinienem był wiedzieć!). Musisz zrzucić IQueryable
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var mongoQuery = ((MongoQueryable<Entity>)linqQuery).GetMongoQuery();
Oryginalna odpowiedź:
W tej chwili nie ma oficjalnie obsługiwanego sposobu, aby to zrobić, ale w niedalekiej przyszłości zamierzamy ułatwić ustalenie, na jakie zapytanie MongoDB zostało zmapowane zapytanie LINQ.
W krótkim okresie możesz użyć następujących nieudokumentowanych metod wewnętrznych, aby dowiedzieć się, do jakiego zapytania MongoDB jest mapowane zapytanie LINQ:
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var translatedQuery = (SelectQuery)MongoQueryTranslator.Translate(linqQuery);
var mongoQuery = translatedQuery.BuildQuery();
Ale w pewnym momencie może być konieczne przejście z tych nieudokumentowanych metod na oficjalnie obsługiwane metody (nieudokumentowane metody mogą ulec zmianie lub w przyszłości mieć zmienioną nazwę).