2015-05-26 124 views
13

我需要检索我的MongoDB中的所有文档,但是我无法弄清楚。我已经说过我是“收集”像这个 -从MongoDB'collection'获取所有'文档'

private static IMongoCollection<Project> SpeCollection = db.GetCollection<Project>("collection_Project"); 

而且我也跟着什么是this MongoDB的教程解释。我调整了它适合我的需要,喜欢 -

var documents = await SpeCollection.Find(new Project()).ToListAsync(); 

不过,我一直具有以下无错误

MongoDB.Driver.IMongoCollection没有为“查找”的定义和最佳覆盖扩展方法[superlong stuff]。查找包含无效的参数。

回答

28

使用驱动程序(V2.0)的最新版本,你可以做到这一点通过将匹配一切过滤器:

var documents = await SpeCollection.Find(_ => true).ToListAsync(); 

他们还增加了一个空的过滤器(FilterDefinition.Empty),这将在驱动程序的下一个版本到货(V2.1):

var documents = await SpeCollection.Find(Builders<Project>.Filter.Empty).ToListAsync(); 
3

如果你想要所有的文件,为什么不使用Find all

var documents = await SpeCollection.Find(new BsonDocument()).ToListAsync(); 
+1

:**等待SpeCollection.Find(F =>真).ToListAsync(); ** –

4

最简单的方法来检索所有文件─

var documents = SpeCollection.AsQueryable(); 

如果你喜欢使用的lambda它也可以被转换为Json对象 -

var json = Json(documents, JsonRequestBehavior.AllowGet);