Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检索对象集合_C#_Mongodb - Fatal编程技术网

C# 检索对象集合

C# 检索对象集合,c#,mongodb,C#,Mongodb,我不知道如何在asp.NETMVC5中的mongoDB上创建读取函数。我在控制器中有这部分代码: public HomeController() { var mongoClient = new MongoClient(Settings.Default.EmployeesConnectionString); var database= mongoClient.GetDatabase("football"); var coll =

我不知道如何在asp.NETMVC5中的mongoDB上创建读取函数。我在控制器中有这部分代码:

 public HomeController() {
           var mongoClient = new MongoClient(Settings.Default.EmployeesConnectionString);
           var database= mongoClient.GetDatabase("football");
           var coll = database.GetCollection<BsonDocument>("Footballers");
公共家庭控制器(){
var mongoClient=new mongoClient(Settings.Default.EmployeesConnectionString);
var database=mongoClient.GetDatabase(“football”);
var coll=database.GetCollection(“足球运动员”);

正如您所见,我将数据库和集合路径保存在一个变量中,以便更容易导航。我还测试了它,我设法在mongodb中创建了一个新集合,因此我认为这是正确的。我的问题是,我应该进一步写些什么来返回整个集合?它应该在列表中吗?之后,我将尝试重新执行请在网页上注册,如果您对此有任何意见,也请让我知道。

得到您的一般建议

IEnumerable globalRelordList=MongoClient.GetDatabase(“football”)

代码:


这里auditRecordDTO是C#DTO,它与您的DTO具有相同的JSON字段。

设法解决了这个问题

var coll = database.GetCollection<BsonDocument>("Footballers");

        var documents = coll.Find(new BsonDocument()).ToList();
        for(int i=0; i<documents.Count(); i++){
            Console.WriteLine(documents[i]);
        }
        Console.ReadLine();
var coll=database.GetCollection(“足球运动员”);
var documents=coll.Find(new BsonDocument()).ToList();

对于(inti=0;i2.xapi)使用异步方法。您可以使用1.xapi,但可能不想使用

检索数据的方法基本上有三种: ToListAsync()

ForEachAsync()

ToCursorAsync()


这里最后一个ToCursorAsync使用了一个光标,我想这是您希望在网页上使用的光标。您不需要检索整个数据,而是获取数据块。

这可能有助于ASP.NET MVC与MongoDB查询有什么关系?@JanWidmer我以前见过这个,但没有帮助。我不太熟悉async和Wait方法所以我认为必须有另一种方法。我尝试了这个方法,仍然没有成功,似乎我犯了一个愚蠢的错误:?var documents=coll.Find(new BsonDocument()).ToList();Console.WriteLine(documents);Console.ReadLine();什么是“没有成功”意思是说?你没有得到任何结果?你得到了一个异常?一个编译错误?如果你只想循环,你甚至不需要
ToList
foreach
处理任何可枚举的对象,例如
foreach(文档中的var do){……}
public class GenericRecord{}
{   public string Id { get; set; }
    public string Data { get; set; }
    public string CollectionName { get; set; }
    public RecordFormat Format { get; set; }
}
var coll = database.GetCollection<BsonDocument>("Footballers");

        var documents = coll.Find(new BsonDocument()).ToList();
        for(int i=0; i<documents.Count(); i++){
            Console.WriteLine(documents[i]);
        }
        Console.ReadLine();
var list = await col.Find(new BsonDocument()).ToListAsync();
foreach (var doc in list)
{
    Console.WriteLine (doc.ToJson());
}
await col.Find(new BsonDocument())
    .ForEachAsync((doc,i) => { 
      Console.WriteLine ("Doc #{0}:{1}",i,doc);
    });
using (var cursor = await col.Find(new BsonDocument()).ToCursorAsync())
{
 while (await cursor.MoveNextAsync())
 {
  foreach (var doc in cursor.Current)
  {
    Console.WriteLine (doc.ToJson());
  }
 }
}