C# 如何转换列表<;BsonDocument>;列出<;类别>;在C中#

C# 如何转换列表<;BsonDocument>;列出<;类别>;在C中#,c#,mongodb,list,bson,C#,Mongodb,List,Bson,在这里,我尝试将Bson文档列表转换为类列表。这样做的主要目的是从Json数据列表中过滤数据。我使用MongoDb作为数据库,使用C#处理数据。我在MongoDb中存储了一些数据,并尝试使用FilterDefinition对数据进行过滤,如下所示: 过程1 FileContext context = new FileContext(); var collection = context.Db.GetCollection<BsonDocument>("DBCollection");

在这里,我尝试将Bson文档列表转换为类列表。这样做的主要目的是从Json数据列表中过滤数据。我使用MongoDb作为数据库,使用C#处理数据。我在MongoDb中存储了一些数据,并尝试使用
FilterDefinition
对数据进行过滤,如下所示:

过程1

 FileContext context = new FileContext();
 var collection = context.Db.GetCollection<BsonDocument>("DBCollection");
 var builder = Builders<BsonDocument>.Filter;
 FilterDefinition<BsonDocument> Filter = builder.Eq("FileName", fileDetail.FileName) & builder.Eq("FileNumber", fileDetail.FileNumber.ToString());
 var list = await collection.Find(Filter).ToListAsync();
FileContext=newfilecontext();
var collection=context.Db.GetCollection(“DBCollection”);
var builder=Builders.Filter;
FilterDefinition Filter=builder.Eq(“FileName”,fileDetail.FileName)和builder.Eq(“FileNumber”,fileDetail.FileNumber.ToString());
var list=await collection.Find(Filter.toListSync();
这样我就无法获得列表中的数据。因此,我尝试了另一种方式:

过程2

 FileContext context = new FileContext();
 var collection = context.Db.GetCollection<BsonDocument>("DBCollection");
 var list = await collection.Find(_ => true).ToListAsync();
 List<MyClass> objList = null;
 foreach (var item in objList)
 {
   objList = new List<MyClass>();
   objList.Add(BsonSerializer.Deserialize<MyClass>(item));
 }
 if(objList.Count >0)
 {
    int count = objList.Where(x => x.FileName == "SOME_FILE_NAME" && x.FileNumber == 1).Count();
 }
FileContext=newfilecontext();
var collection=context.Db.GetCollection(“DBCollection”);
var list=await collection.Find(=>true).toListSync();
列表对象列表=null;
foreach(对象列表中的var项)
{
objList=新列表();
添加(BsonSerializer.Deserialize(项));
}
如果(objList.Count>0)
{
int count=objList.Where(x=>x.FileName==“SOME_FILE_NAME”&&x.FileNumber==1.count();
}
通过这种方式,我可以获得数据,也可以过滤数据,但我知道这根本不是一个好的编程,因为如果将来数据的大小增加,这将有大量的等待时间

我的问题是:

  • 过程1有什么问题
  • 如何将
    列表
    转换为
    列表
  • 如何筛选
    列表
  • var collection = context.Db.GetCollection<BsonDocument>("DBCollection");
    
    var collection = context.Db.GetCollection<MyClass>("DBCollection");
    
    var objList = await collection.Find(x => x.FileName == "FILENAMEHERE" && x.FileNumber == 1).ToListAsync();