这是完整的程序代码: (Follower类除外,只有id和用户名--Json类型) 我没有db的任何用户 - 只是创建了简单的集合
class Program
{
static void Main(string[] args)
{
DBClass db = new DBClass();
db.check();
}
}
class DBClass
{
protected string connectionString ="mongodb://localhost:27017";
protected IMongoClient _client;
protected IMongoDatabase _database;
protected IMongoCollection<Follower> collection;
public DBClass()
{
_client = new MongoClient(connectionString);
_database = _client.GetDatabase("FollowedUsers");
collection = _database.GetCollection<Follower>("UserData");
}
public async void check()
{
var filter = Builders<Follower>.Filter.Eq("id", "266663861");
var result = await collection.Find(filter).CountAsync();
Console.WriteLine(result);
Console.ReadLine();
}
}
}
这是我在mongod中看到的:
2015-10-06T12:08:24.119+0300 I NETWORK [initandlisten] connection
accepted from 127.0.0.1:50069 #2 (1 connection now open)
2015-10-06T12:08:24.243+0300 I NETWORK [conn2] end connection
27.0.0.1:50069 (0 connections now open)
当我从VS运行它只是终止,没有异常,这是我在输出中看到的程序'[11724] MongoTest.vshost.exe'退出代码0(0x0)。 当我调试它时,我发现它终止于这一行:
var result = await collection.Find(filter).CountAsync();
我是否错误地配置了smth?
答案 0 :(得分:0)
您的问题与MongoDB无关。 问题的原因是主线程正在执行dbCheck时关闭mongoDb连接。
您应该更改下一行:
1)
公共异步任务 check()
2)
db.check()的等待()强>;