Use the 10gen driver. Isn't lambda based, so you won't get member
rename support from the IDE, but it is extremely powerful. E.g.,
users.FindAs<User>(Query.EQ("_id",
"
te...@foo.com")).SetFields(Fields.Include(new string[] { "first_name",
"last_name" }))
In the 10gen API, MongoCollection.Find, .FindAs, .FindAll
and .FindAllAs return MongoCursors, on which you can specify various
things including field inclusions (or exclusions).