回复陈述

时间:2015-12-01 20:13:30

标签: c# mongodb

我有一个问题,我无法自己解决。在我的getAlldata()方法中,我需要返回我的集合kljenti中的所有数据。我不知道我需要在我的方法声明和return语句中使用哪种数据类型。 我尝试了很多解决方案,但它们没有用。

  public void getAllData () {
        try {
            var connectionString = "mongodb://172.16.1.24:27017";
            var client = new MongoClient(connectionString);
            var server = client.GetServer();
            var database = server.GetDatabase("kljenti");
            var Client = new MongoClient();
            var DB = Client.GetDatabase("knjigoMata");
            var kolekcija = DB.GetCollection<BsonDocument>("kljenti");
            var allDocuments = kolekcija.Find(new BsonDocument()).ToListAsync();

            foreach (var kljenti in allDocuments) {
                Console.WriteLine(kljenti);
            }

            return allDocuments;

        } catch {
            MessageBox.Show("Nemogu prikazati podatke o korisnicima");
        }
    }

2 个答案:

答案 0 :(得分:2)

我建议将klijenti表反序列化为c#对象。 1.创建一个代表klijenti表的类。例如:

public class Klijent
{
   public string Name {get;set;}
   public string Address {get;set;}
}

2。然后使用

List<Klijent> res = db.FindAs<Klijent>.ToList();
  1. 列表是您请求的返回类型。

答案 1 :(得分:0)

在这种情况下,

ToListAsync()返回Task<List<BsonDocument>>。因此,要使其工作,您必须等待任务完成,然后返回任务Result。

例如:

public List<BsonDocument> getAllData()
{
    try
    {
        var connectionString = "mongodb://172.16.1.24:27017";
        var client = new MongoClient(connectionString);
        var server = client.GetServer();
        var database = server.GetDatabase("kljenti");
        var Client = new MongoClient();
        var DB = Client.GetDatabase("knjigoMata");
        var kolekcija = DB.GetCollection<BsonDocument>("kljenti");
        Task<List<BsonDocument>> task = kolekcija.Find(new BsonDocument()).ToListAsync();

        task.Wait();
        List<BsonDocument> allDocuments = task.Result;
        foreach (var kljenti in allDocuments)
        {
            Console.WriteLine(kljenti);
        }
        return allDocuments;
    }
    catch
    {
        MessageBox.Show("Nemogu prikazati podatke o korisnicima");
    }
}