MongoDb: как вернуть отдельное поле в select (find) с официальным драйвером C # - PullRequest
3 голосов
/ 31 октября 2011

Мне нужно выбрать Имя пользователя из коллекции пользователей.Я делаю это так:

MongoCollection<Enums> coll = Db.GetCollection<Enums>("Users"); 
var query = Query.EQ("_id", id); 
var res = coll.FindOne(query); 
var name = res.Name; 
var url = res.UserUrl; //or some more fields, not just Name

Предполагая, что пользовательский документ может содержать много данных, и нет необходимости передавать весь пользовательский документ, как выбрать только несколькополя, использующие официальный драйвер C #?

1 Ответ

2 голосов
/ 02 ноября 2011

Вам нужно будет использовать функцию, которая возвращает MongoCursor.В MongoCursor вы можете указать поля, которые вы хотите вернуть.

var result = Db.GetCollection<Enums>("Users").FindAll();
result.Fields = Fields.Include(new [] {"Name"});;

foreach (var user in result)
{   
    Console.WriteLine(user.Name);
}
...