获取所有文档'来自MongoDB'集合'

时间:2015-05-26 08:47:42

标签: c# .net mongodb mongodb-.net-driver mongodb-csharp-2.0

我需要检索MongoDB中我的集合中的所有文档,但我无法弄清楚如何。我已经宣布了我的收藏品#39;像这样 -

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

我遵循了this MongoDB教程中的解释。我根据自己的需要调整了它,比如 -

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

但是,我一直有以下错误 -

  

MongoDB.Driver.IMongoCollection没有&#39; Find&#39;的定义。和扩展方法[superlong stuff]的最佳覆盖。查找包含无效参数。

3 个答案:

答案 0 :(得分:50)

使用当前版本的驱动程序(v2.0),您可以通过传递匹配所有内容的过滤器来实现:

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

他们还添加了一个空滤镜(FilterDefinition.Empty),它将到达下一版本的驱动程序(v2.1):

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

答案 1 :(得分:7)

最简单的方法

检索所有文件 -

var documents = SpeCollection.AsQueryable();

还转换为JSON对象 -

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

答案 2 :(得分:4)

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

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