相关疑难解决方法(0)

使用 C# SDK 投影到另一种类型

我希望在使用 C# SDK 查询 MongoDB 时能够投影到另一种类型。

例如,下面我想使用 的构建器过滤器(或 LINQ 表达式)查询集合MyType我想将结果投影到MySubType

var mySubTypes = Database
    .GetCollection<MyType>("MyCollection")
    .Find(Builders<MyType>.Filter.AnyIn(x => x.Documents, documentId))
    .ProjectTo<MySubType>() // Project to another type??
    .ToList();
Run Code Online (Sandbox Code Playgroud)

人们可以想象MySubType它是 的子集MyType,用继承表示:

public class MyType : MySubType
{
    [BsonElement("documents")]
    public List<string> Documents { get; set; }
}

public class MySubType
{
    [BsonElement("name")]
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我为什么要这样做?

因为Documents数组非常大并且纯粹在数据库引擎内查询(即过滤)期间使用。检索和序列化该数组将是不必要的成本。

.net c# mongodb mongodb-query mongodb-.net-driver

5
推荐指数
1
解决办法
2340
查看次数

标签 统计

.net ×1

c# ×1

mongodb ×1

mongodb-.net-driver ×1

mongodb-query ×1