簡體   English   中英

mongodb c#選擇特定字段

[英]mongodb c# select specific field

需要一些幫助,以創建一種通用方法來按其名稱選擇字段。

像這樣的東西:

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

我得到的最好的結果是使用投影 ,該投影只給我設置了所需字段的文檔:

 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM