MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Przetłumacz Queryable z powrotem na IMongoQuery

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 do MongoQueryable, aby uzyskać dostęp do metody GetMongoQuery:

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ę).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MapReduce z MongoDB naprawdę, bardzo wolno (30 godzin vs 20 minut w MySQL dla równoważnej bazy danych)

  2. dlaczego nie mogę uruchomić mongodb

  3. Połącz laravel jenssegers z klastrem atlasu mongodb

  4. Składnia Java z MongoDB

  5. Jak wykonać zapytanie agregujące Mongo w Spring Data?