По умолчанию выборка содержит все поля документа, но мне не нужны все поля. Например, имеется коллекция users вида:
{
"_id": {
"$oid": "594706879b66306d4152039"
},
"userId": 123456,
"firstName": "Anatoly",
"lastName": "Mikhailyuk"
}
Нужно получить только имя пользователя с userId. Пытался получить его так:
var client = new MongoClient("mongodb://user:pass@server");
var db = client.GetDatabase("collection_name");
var collection = db.GetCollection<User>("users");
var filterBuilder = Builders<User>.Filter;
var filter = filterBuilder.Eq("userId", 123456);
var result = collection.Find(filter, {"_id": 0, "userId": 0, "firstName": 1, "lastName": 0})
Console.WriteLine(result);
Не сработало. Использовал VS2017 и MongoDB.driver версии 2.4.4. Есть ли способ сделать это?
Разобрался.
class User
{
[BsonId]
public ObjectId Id { get; set; }
[BsonElement("userId")]
[Required]
public long UserId { get; set; }
[BsonElement("firstName")]
public string FirstName { get; set; }
[BsonElement("lastName")]
public string LastName { get; set; }
}
class UserLastName
{
[BsonId]
public ObjectId Id { get; set; }
[BsonElement("lastName")]
public string LastName{ get; set; }
}
var client = new MongoClient("mongodb://user:pass@server");
var db = client.GetDatabase("collection");
var collection = db.GetCollection<User>("users");
var projection = Builders<User>.Projection.Include("lastName");
var result = collection.Find(o => o.UserId == userId).Project<UserLastName>(projection).ToList();
Console.WriteLine(result[0].LastName);
Использовал VS2017 и MongoDB.driver версии 2.4.4.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имею List<Class>, который раз в N минут обновляется путем десериализации JSON файла, у коллекции реализован INotifyPropertyChanged для грамотного привязывания...
ЗдравствуйтеЕсть страничка, с которой необходимо скачать файл, предварительно авторизовавшись
У меня в компании есть библиотека с разными "кастомными" контролами для WPF"Кастомные", они лишь потому что там изменена визуальная составляющая,...