获取所有文档'从MongoDB '收集'

本文关键字:MongoDB 收集 获取 文档 | 更新日期: 2023-09-27 17:50:42

我需要检索我在MongoDB中收集的所有文档,但我无法弄清楚如何。我已经像这样声明了我的"集合"——

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

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

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

然而,我一直有以下错误-

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

获取所有文档'从MongoDB '收集'

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

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

他们还添加了一个空过滤器(FilterDefinition.Empty),它将在下一个版本的驱动程序(v2.1)中出现:

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

最简单的方法

检索所有文档-

var documents = SpeCollection.AsQueryable();

也转换为JSON对象-

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

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

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