C#Mongo驱动程序中不推荐使用的方法

时间:2013-09-04 15:51:23

标签: mongodb mongodb-.net-driver

在最新版本的C#驱动程序中,10gen似乎已转移到其.find()方法的更多类型版本。看来MongoCollection.Find(IMongoQuery)已被弃用,取而代之的是MongoCollection.FindAs(Type,IMongoQuery)。这很好(虽然我没有看到文档中任何地方提到的弃用);但是,MongoCursor不再包含.ToList()方法。试图解决这些缺少的方法我尝试使用MongoCursor.IEnumerableGetEnumerator(),但我的IDE抱怨这不是一个有效的方法。

为了简化我的问题,下面是我正在做的代码段,如何用新驱动程序完成?

var queryResult = collection.Find(Query.And(largeQueryList[i])).ToList();
try { result = queryResult.Sum(w => w[valueField].ToDouble()); }

1 个答案:

答案 0 :(得分:0)

我不确定你上次更新驱动程序的时间,因为看起来这个方法在MongoCollection类中已经有很长一段时间了。它出现在通用MongoCollection<type>类中。驱动程序需要知道要反序列化的类型,因此您需要指明文档类型。这可能是通过一个通用的BsonDocument:

MongoCollection<BsonDocument>

或者,如果您有特定类型,可以在那里替换它。

如果您不想使用通用版本,则需要使用FindAs或其中一种等效方法来表示Type

执行此操作后,您会看到ToList应该可用。