本文介绍了MongoDB的C#选择特定的领域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

需要一些帮助创建的通用的方法,其名称选择字段

Need some help creating a generic method for selecting fields by their name.

是这样的:

T GetDocField<T>(string doc_Id, string fieldName)

我是用投影最佳它让我的文档只seted通缉领域:

The best I got is using projection which gives me the doc with only the wanted field seted:

 public T GetDocField<T>(string Doc_Id, string fieldName)
 {
    var value = DocCollection.Find(d => d.Id == Doc_Id)
               .Project<T>(Builders<Doc>.Projection
               .Include(new StringFieldDefinition<Doc>
               (fieldName))).FirstOrDefaultAsync().Result;

注:
我使用的是新的C#的驱动程序(2.0)

谢谢!

推荐答案

您可以采取以下行动:

public async Task<TValue> GetFieldValue<TEntity, TValue>(string id, Expression<Func<TEntity, TValue>> fieldExpression) where TEntity : IEntity
{
    var propertyValue = await collection
        .Find(d => d.Id == id)
        .Project(new ProjectionDefinitionBuilder<TEntity>().Expression(fieldExpression))
        .FirstOrDefaultAsync();

    return propertyValue;
}

和调用它

var value = await GetFieldValue<Item, string>("111", x => x.Name);

这篇关于MongoDB的C#选择特定的领域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 00:43