在最新版本的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()); }
答案 0 :(得分:0)
我不确定你上次更新驱动程序的时间,因为看起来这个方法在MongoCollection
类中已经有很长一段时间了。它出现在通用MongoCollection<type>
类中。驱动程序需要知道要反序列化的类型,因此您需要指明文档类型。这可能是通过一个通用的BsonDocument:
MongoCollection<BsonDocument>
或者,如果您有特定类型,可以在那里替换它。
如果您不想使用通用版本,则需要使用FindAs
或其中一种等效方法来表示Type
。
执行此操作后,您会看到ToList
应该可用。