Projection with AsQueryable in MongoDB C# driver 2.2 -


i trying hands @ mongodb c# driver version 2.2. trying use projection not want retrieve elements in document. found 1 way use project operator along find operator, this:

collection.find(key => key.index == 1).project<myclass>(builders<myclass>.projection.include(key => key.name).include(key => key.index)). toenumerable (); 

however interested in using asqueryable api along operator, this:

collection.asqueryable().where(key => key.index == 1); 

is possible use projection in above case? if use select operator, have same effect projection? or still fetch elements database server , select specified elements in application server?

yes, possible. if add select (select(i => new { i.name, i.index})) query , call tostring method @ end, you'll see linq provider generates aggregation pipeline 2 operations (a $match , $project):

var query=collection.asqueryable().where(key => key.index == 1).select(k=>new {k.name,k.index}); var aggregate= query.tostring(); 

in sumary, yes, select generates $project operation.

about other questions, query not going executed until call method tolist (that going fetch result of query memory) or when iterate on result.


Comments

Popular posts from this blog

sublimetext3 - what keyboard shortcut is to comment/uncomment for this script tag in sublime -

java - No use of nillable="0" in SOAP Webservice -

ubuntu - Laravel 5.2 quickstart guide gives Not Found Error -