MongoDB没有控制台输出

时间:2018-04-19 13:33:13

标签: c# .net mongodb cmd

我已将MongoDB连接到.NET,并且我试图将数据保存到数据库中。该程序工作正常,我的数据插入到数据库中,但我从文档中了解到,我应该能够看到控制台窗口中发生的所有事情。这是我正在制作的示例程序。

static void Main(string[] args)
    {
        MainAsync().Wait();
        Console.ReadLine();
    }

    static async Task MainAsync()
    {
        var client = new MongoClient("mongodb://localhost:27017");
        IMongoDatabase db = client.GetDatabase("machines");
        var collection = db.GetCollection<BsonDocument>("cranes");

        var document = new BsonDocument
        {
            { "code", BsonValue.Create("0x657")},
            { "departments", new BsonArray(new[] {"Mech", "Forge"}) },
        };

        await collection.InsertOneAsync(document);
    }

这是我在运行程序时看到的控制台输出。

console_output

我可以看到数据已在MongoDB Compass中成功添加,但我在控制台窗口中没有任何反馈。

1 个答案:

答案 0 :(得分:1)

您需要使用MongoClient启动MongoClientSettings,并在那里订阅命令事件。

var url = MongoUrl.Create("mongodb://localhost:27017");
var settings = MongoClientSettings.FromUrl(url);
settings.ClusterConfigurator += b => b.Subscribe<CommandStartedEvent>(
    e => Console.WriteLine($"MongoDB: {e.Command.ToJson()}")
);

var client = new MongoClient(settings);
...