【问题标题】:Get All 'documents' from MongoDB 'collection'从 MongoDB“集合”中获取所有“文档”
【发布时间】:2015-05-26 08:47:42
【问题描述】:

我需要在 MongoDB 中检索我的集合中的所有文档,但我不知道如何。我已经像这样宣布了我的“收藏”-

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      最简单的方法

      检索所有文档-

      var documents = SpeCollection.AsQueryable();
      

      也转换为JSON对象-

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

      【讨论】:

      • 什么是Json()?
      【解决方案3】:

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

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

      【讨论】:

      • 如果您更喜欢使用 lambda:await SpeCollection.Find(f=>true).ToListAsync();
      猜你喜欢
      • 2020-08-09
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-19
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多