MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Преведете Queryable обратно към IMongoQuery

Редактиран отговор:

Разбрах, че вече има официален начин да получа заявката Mongo от заявка LINQ (трябваше да знам!). Трябва да намалите IQueryable към MongoQueryable, за да получите достъп до метода GetMongoQuery:

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

Оригинален отговор:

В момента няма официално поддържан начин за това, но в близко бъдеще възнамеряваме да улесним да разберем към коя заявка на MongoDB е била съпоставена заявката LINQ.

В краткосрочен план можете да използвате следните недокументирани вътрешни методи, за да разберете към каква заявка на MongoDB е съпоставена заявката 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();

Но в даден момент може да се наложи да преминете от тези недокументирани методи към официално поддържани методи (недокументираните методи може да се променят или преименуват в бъдеще).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodump от отдалечен сървър

  2. Mongodb обобщава (брои) в множество полета едновременно

  3. Намерете документи с масив, който не съдържа конкретна стойност

  4. Как да се справим с проблема с часовата зона при съхраняване на дати в utc с помощта на mongod?

  5. Проверете съществуването на колекция в MongoDB