sql >> Databáze >  >> NoSQL >> MongoDB

Přeložte Queryable zpět do IMongoQuery

Upravená odpověď:

Uvědomil jsem si, že již existuje oficiální způsob, jak získat dotaz Mongo z dotazu LINQ (měl jsem to vědět!). Musíte přenést IQueryable na MongoQueryable, abyste získali přístup k metodě GetMongoQuery:

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

Původní odpověď:

V tuto chvíli neexistuje žádný oficiálně podporovaný způsob, jak toho dosáhnout, ale v blízké budoucnosti máme v úmyslu usnadnit zjištění, na jaký dotaz MongoDB byl dotaz LINQ namapován.

Krátkodobě můžete použít následující nezdokumentované interní metody, abyste zjistili, na jaký dotaz MongoDB je dotaz LINQ mapován:

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

V určitém okamžiku však možná budete muset přejít z těchto nezdokumentovaných metod na oficiálně podporované metody (nedokumentované metody se mohou v budoucnu změnit nebo přejmenovat).



  1. Co to znamená umístit pracovní sadu do paměti RAM pro MongoDB?

  2. Implementace stránkování pomocí MongoDB, Express.js a Slush

  3. Kde je databáze meteorů MongoDB?

  4. MongoDB Index na různých typech